injizieren Ich habe eine laufende Spring 3 Web-Anwendung. Alle Beans sind korrekt eingefügt und alles funktioniert so wie es sollte (alle Web-Service-Aufrufe funktionieren ordnungsgemäß).Wie Spring Bean in Thread
Beim Erweitern der Anwendung musste ich Threads hinzufügen, die gestartet werden können & gestoppt über einen Webdienst.
In den Thread muss ich einige Frühlingsbohnen injizieren. Dies sind Dienste (kommentiert mit @Service). In meinem application werden die Bohnen über eine Komponente Scan erkannt:
<context:component-scan base-package="<package>">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />
</context:component-scan>
Aber wenn ich versuche, die Bohnen (mit @Resource) im Thread sind sie immer ‚Null‘ (Frühling nicht injiziert sie) zu injizieren. Der Thread wird gestartet, schlägt aber während der Initialisierung fehl.
Ich habe auch versuchte sie die Injektion von der application in Code geladen: (Anwendungskontext wird in ‚src/main/resources‘ befindet)
ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:*applicationContext.xml");
if(applicationContext.containsBean("BeanName")) {
beanObject = (BeanClass) applicationContext.getBean("BeanName");
} else {
//Exception
}
Hat keine Ahnung, jemand, wie die Bohnen in dem Thread zu injizieren ? Oder ist es nicht möglich, Bohnen in einen Thread zu injizieren?
Vielen Dank im Voraus!
[Mögliches Duplikat] (http://stackoverflow.com/a/1377740/248082). Basierend auf dieser Antwort erweitert Ihre benutzerdefinierte Klasse 'Thread'. – nobeh