BlogApp之spring整合Guava中的AsyEventBus異步事件

             在這個博客的創做中,有許多地方須要使用到異步事件,在此選擇了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的整合大體就到這裏了。

相關文章
相關標籤/搜索