如何将 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>