我有一个正在运行的 Spring 3 Web 应用程序。所有 bean 都已正确注入,并且一切正常(所有 Web 服务调用都正常工作)。
在扩展应用程序时,我需要添加可以通过 Web 服务启动和停止的线程。
在线程中,我需要注入一些 Spring bean。这些 bes 是服务(用@Service 注释)。在我的 applicationContext 中,bean 是通过组件扫描检测到的:
<context:component-scan base-package="<package>">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />
</context:component-scan>
但是当我尝试在线程中注入bean(使用@Resource)时,它们总是'null'(Spring不注入它们)。线程已启动,但在初始化时失败。
我还尝试通过在代码中加载 applicationContext 来注入它们:(应用程序上下文位于'src/main/resources')
ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:*applicationContext.xml");
if(applicationContext.containsBean("BeanName")) {
beanObject = (BeanClass) applicationContext.getBean("BeanName");
} else {
//Exception
}
有谁知道如何在线程中注入 bean?还是不能在线程中注入 bean?
提前致谢!