4

ThreadPoolExecutorFactoryBean是实现DisposableBeanFactoryBean。当像这样在 Spring 的 XML bean 定义中使用时

<bean id="executorService" 
      class="org.springframework.scheduling.concurrent.ThreadPoolExecutorFactoryBean"/>

创建的 bean 将是ExecutorService的一个实例,并确保ThreadPoolExecutorFactoryBean#destroy()在 Spring 应用程序上下文关闭后被调用。

是否可以使用 Spring 3 的@Configuration类配置这样的 bean ?

4

1 回答 1

8

我发现这种方法最优雅:

@Configuration
public class Cfg {

    public ExecutorService executorService() {
        return executorServiceFactoryBean().getObject();
    }

    @Bean
    public ThreadPoolExecutorFactoryBean executorServiceFactoryBean() {
        return new ThreadPoolExecutorFactoryBean();
    }

}

请注意,executorService()没有用 - 注释,@Bean但您仍然可以从其他@Bean需要的 - 方法中调用它ExecutorService。由于ThreadPoolExecutorFactoryBean用 注释@Bean,Spring 将自动管理其生命周期(检测DisposableBean等)

于 2012-10-17T18:57:45.137 回答