简单使用
不做说明,仅记录代码及使用
Code
src/…/reactor/config/ReactorConfig.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| @Component public class ReactorConfig {
@Bean Environment env() { return new Environment(); }
@Bean @Primary Reactor pool(Environment env) { return Reactors.reactor() .env(env) .dispatcher(Environment.THREAD_POOL) .get(); }
@Bean Reactor loop(Environment env) { return Reactors.reactor() .env(env) .dispatcher(Environment.EVENT_LOOP) .get(); } }
|
src/…/reactor/ReactorListener.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| @Component public class ReactorListener implements InitializingBean {
@Autowired Reactor reactor;
@Autowired UserHandler userHandler;
@Override public void afterPropertiesSet() throws Exception {
reactor.on($("userHandler"), userHandler); } }
|
src/…/reactor/handler/UserHandler.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| @Component public class UserHandler implements Consumer<Event<UserDto>> {
@Autowired UserMapper userMapper;
@Override public void accept(Event<UserDto> userDtoEvent) {
try { UserDto user = userDtoEvent.getData(); user = userMapper.getUser(user.getId()); log.info("in userHandler: user={}", user); } catch(Exception e) { log.error(String.valueOf(e)); } } }
|
使用
controller
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| public class UserController {
@Autowired Reactor reactor;
@Autowired IUserService userService;
@PostMapping("/get") public UserDto getUser(Integer uid) {
UserDto userDto = new UserDto(); userDto.setId(uid);
reactor.notify("userHandler", Event.wrap(userDto)); return userService.getUser(uid); } }
|