我有一个正在运行的Spring 3 Web应用程序。所有的bean都被正确地注入,并且所有的东西都是正常的(所有的web服务调用都正常)。如何在线程中注入Spring Bean
扩展应用程序时,我需要添加可以启动的线程&通过Web服务停止。
在线程中,我需要注入一些Spring bean。这些是服务(用@Service注释)。在我的applicationContext通过组件扫描检测到的豆:
<context:component-scan base-package="<package>">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />
</context:component-scan>
但是当我尝试在线程他们总是“空”注入豆(使用@Resource)(Spring不将它们注入)。该线程已启动,但在初始化时失败。
我也试图通过在代码加载ApplicationContext中注入他们:(应用程序上下文位于“的src/main /资源”)
ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:*applicationContext.xml");
if(applicationContext.containsBean("BeanName")) {
beanObject = (BeanClass) applicationContext.getBean("BeanName");
} else {
//Exception
}
有没有人有任何想法如何注入豆线程?或者不可能在一个线程中注入bean?
先谢谢了!
[可能的重复](http://stackoverflow.com/a/1377740/248082)。基于这个答案,你的自定义类正在扩展'Thread'。 – nobeh 2012-04-13 16:07:06