4

ThreadPoolExecutorFactoryBeanは、DisposableBean実装するFactoryBeanです。このようなSpringのXML Bean定義で使用される場合

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

作成された Bean はExecutorServiceThreadPoolExecutorFactoryBean#destroy()のインスタンスになり、Spring Application Context がシャットダウンされると、確実に呼び出されます。

そのような Bean を Spring 3 の@Configurationクラスで構成することは可能ですか?

4

1 に答える 1

8

このアプローチが最もエレガントであることがわかりました。

@Configuration
public class Cfg {

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

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

}

- の注釈が付けられてexecutorService()ないことに注意してください。にアノテーションが付けられているため、Spring はそのライフサイクルを自動的に管理します (detectなど)。@Bean@BeanExecutorServiceThreadPoolExecutorFactoryBean@BeanDisposableBean

于 2012-10-17T18:57:45.137 に答える