我希望能够在我的Spring服务中注入ExecutorService
实例,而Spring API建议使用ThreadPoolExecutorFactoryBean
来实现此目的。很简单的问题;我该如何使用ThreadPoolExecutorFactoryBean
创建一个ExecutorService
,我可以将其连接到我的其他服务中?
我觉得他是一个完全白痴问他的问题,但我似乎无法理解这一点。
答案 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。