spring reactor多執行緒配置
阿新 • • 發佈:2019-01-30
最近工作中用到一個非常好用的框架spring reactor,可以幫助我們新開一個非同步的執行緒來處理一些比如記錄日誌的功能,這樣就能節約後臺相應的時間,之前在網上也沒有找到完全能用的列子,這裡記錄一下,方便以後用,配置也非常的簡單:
1:引入jar包,這裡使用的是maven,只需要引用一個jar包就行了
<dependency>
<groupId>org.projectreactor</groupId>
<artifactId>reactor-spring</artifactId>
<version> 1.0.0.RELEASE</version>
</dependency>
2:寫一個reactor的配置的bean
@Configuration
@EnableReactor
public class ReactorConfig {
@Bean(name = "rootReactor")
public Reactor rootReactor(Environment env) {
return Reactors.reactor().env(env).get();
}
@Bean(name = "reportReactor")
public Reactor reportReactor (Environment env) {
return Reactors.reactor().env(env).get();
}
}
3:事件的處理類,一般是以Hander結尾,方便區分:
@Component
public class IndexHandler {
@Autowired
@Qualifier("rootReactor")
private Reactor reactor;
@Selector(value = "hello", reactor = "@rootReactor")
public void handleTestTopic(Event<String> evt) throws Exception {
System .out.println("************");
}
}
4:最後就是在controller或者service裡面通知新開執行緒了:
@Controller
public class IndexController {
@Autowired
@Qualifier("rootReactor")
private Reactor r;
@RequestMapping("chen")
@Transactional
public void chen() {
r.notify("hello", Event.wrap("你好"));
}
}
大功告成,非常的簡單