如何将 ListeningExecutorService 公开为 Spring bean
How to expose ListeningExecuterService as Spring bean
想知道是否有办法将 ListeningExecuterService 公开为 Spring 单例 bean
经过一番研究找到了方法
@Bean(destroyMethod="shutdown")
public ListeningExecutorService listeningExecutorService() {
ThreadFactory threadFactory = new ThreadFactoryBuilder()
.setNameFormat(" Listening Executor Service [%d]").build();
ExecutorService executorService = Executors.newScheduledThreadPool(
SOMECONSTANT.TASK_EXECUTOR_THREADS, threadFactory);
return MoreExecutors.listeningDecorator(executorService);
}
这是 XML 配置
<!-- ThreadPool for executing functions asynchronously -->
<bean id="functionThreadPool" class="com.google.common.util.concurrent.MoreExecutors" factory-method="listeningDecorator">
<constructor-arg>
<bean class="java.util.concurrent.Executors" factory-method="newCachedThreadPool"/>
</constructor-arg>
</bean>
想知道是否有办法将 ListeningExecuterService 公开为 Spring 单例 bean
经过一番研究找到了方法
@Bean(destroyMethod="shutdown")
public ListeningExecutorService listeningExecutorService() {
ThreadFactory threadFactory = new ThreadFactoryBuilder()
.setNameFormat(" Listening Executor Service [%d]").build();
ExecutorService executorService = Executors.newScheduledThreadPool(
SOMECONSTANT.TASK_EXECUTOR_THREADS, threadFactory);
return MoreExecutors.listeningDecorator(executorService);
}
这是 XML 配置
<!-- ThreadPool for executing functions asynchronously -->
<bean id="functionThreadPool" class="com.google.common.util.concurrent.MoreExecutors" factory-method="listeningDecorator">
<constructor-arg>
<bean class="java.util.concurrent.Executors" factory-method="newCachedThreadPool"/>
</constructor-arg>
</bean>