私は実行中のSpring 3 Webアプリケーションがあります。すべてのBeanが正しく注入され、すべてが正常に動作しています(すべてのWebサービスコールが正常に動作しています)。スレッドにSpring Beanを挿入する方法
アプリケーションを拡張しているうちに、開始できるスレッドを追加する必要がありました。&がWebサービス経由で停止しました。
スレッドでは、いくつかのSpring Beanを注入する必要があります。これらのbeensはサービスです(@Serviceで注釈が付けられています)。
<context:component-scan base-package="<package>">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />
</context:component-scan>
しかし、私は、彼らは常に(春はそれらを注入しない)「NULL」ですスレッドで(@Resourceを使用して)豆を注入しよう:私のApplicationContextで豆は、コンポーネントスキャンによって検出されています。スレッドは開始されましたが、初期化中に失敗します。
私もコードでのApplicationContextをロードすることによってそれらを注入しようとした:誰がどのようにスレッドで豆を注入するために任意のアイデアを持っています
ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:*applicationContext.xml");
if(applicationContext.containsBean("BeanName")) {
beanObject = (BeanClass) applicationContext.getBean("BeanName");
} else {
//Exception
}
(アプリケーション・コンテキストは「SRC /メイン/リソースの中に位置しています) ?それとも、スレッド内にBeanを挿入することはできないのですか?
ありがとうございました!
[可能な重複](http://stackoverflow.com/a/1377740/248082)。この答えに基づいて、あなたのカスタムクラスは 'Thread'を拡張しています。 – nobeh