如何使用Spring的ThreadPoolExecutorFactoryBean工厂bean

时间:2011-05-21 17:58:50

标签: java spring factory

我希望能够在我的Spring服务中注入ExecutorService实例,而Spring API建议使用ThreadPoolExecutorFactoryBean来实现此目的。很简单的问题;我该如何使用ThreadPoolExecutorFactoryBean创建一个ExecutorService,我可以将其连接到我的其他服务中?

我觉得他是一个完全白痴问他的问题,但我似乎无法理解这一点。

3 个答案:

答案 0 :(得分:9)

要展开skaffman's answer,这是一个简短而又甜蜜的例子:

<bean id="classNeedingExecutor" class="foo.Bar">
  <property name="executor" ref="threadExecutor" />
</bean>

<bean id="threadExecutor"
  class="org.springframework.scheduling.concurrent.ThreadPoolExecutorFactoryBean">
  <property name="corePoolSize" value="1" />
  <property name="maxPoolSize" value="1" />
</bean>

再次,请参阅JavaDocs以获取可以设置为配置ExecutorService的其他属性的说明。

答案 1 :(得分:6)

首先,您需要了解FactoryBean的内容 - 阅读春季文档的section 3.8.3

然后,您阅读ThreadPoolExecutorFactoryBean的{​​{3}}并了解它的作用。

接下来,在上下文中配置ThreadPoolExecutorFactoryBean。这将创建一个ExecutorService(因为它是FactoryBean,见上文),您可以将其注入您的bean。

答案 2 :(得分:6)

如果您使用的是弹簧3 http://blog.espenberntsen.net/2010/03/08/spring-asynchronous-support/,则可以考虑使用@Async。