在这个博客的创做中,有许多地方须要使用到异步事件,在此选择了google的guava,这个里面有许多好用的工具库,html
工程所需的maven依赖为:java
<!--guava--> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>${guava.version}</version> </dependency>
这里spring和AsyncEventBus的整合相对的整合要麻烦一些,EventBus的构造函数中有一个无参的构造函数,能够直接注入,可是spring
AsyncEventBus没有无参构造函数,最少也要有一个Executor的参数,所以在此主要编写这个参数的注入。异步
AsyncExecutor的编写为:maven
@Data public class AsyncExecutor { private Executor executor; public AsyncExecutor() { executor = Executors.newFixedThreadPool(10); } }
如此基本就完成了Executor的编写,如今须要一个工厂类ExecutorFactory。函数
ExecutorFactory:工具
public class ExecutorFactory { public Executor getExecutorService(){ return Executors.newFixedThreadPool(8); } }
如今基本完成工厂类的编写,如今来编写配置文件:google
<bean id="executorFactory" class="cn.com.factory.ExecutorFactory" /> <bean id="executor" factory-bean="executorFactory" factory-method="getExecutorService"></bean> <bean id="eventBus" class="com.google.common.eventbus.AsyncEventBus"> <constructor-arg ref="executor" /> </bean>
如此,基本AsyncEventBus的配置就完成了,spa
但在handler的编写中,仍要将handler写进spring的配置文件中,以便方便注入。code
在这里,若是有扫描的方法,还请其余人指教,毕竟在这里,有至关多的handler须要编写,每一个handler都配置是比较麻烦的。
具体AsyncEventBus和spring的整合大体就到这里了。