DarthShader
Erfahrenes Mitglied
Hallo,
ich möchte gerne Beans in ein POJO von Spring injizieren lassen. Diese POJOs sind nicht im Application Context, sondern werden ganz normal via "new" instanziiert.
Die Klassen haben jedoch z.b. folgende Properties:
Es gibt natürlich die Bean mit Namen "myService", welche von Spring erstellt wird.
Ich versuche nun mit folgendem Code, den "myService" zu injizieren:
In dem Beispiel wird "Foo" zwar erstellt (durch den Aufruf von Test.createFoo()), aber das Autowiring funktioniert nicht. Das heißt, das "myService" property von "Foo" bleibt null, Spring macht also anscheinend gar nichts ("myService" gibt es aber, und kann auch via "@Resource" injiziert werden, wenn ich den POJO ebenfalls als Bean deklariere, also nur um mal ganz generelle Fehler auszuschließen).
Hat jemand eine Idee, woran das liegen könnte?
Vielen Dank für Eure Hilfe!
ich möchte gerne Beans in ein POJO von Spring injizieren lassen. Diese POJOs sind nicht im Application Context, sondern werden ganz normal via "new" instanziiert.
Die Klassen haben jedoch z.b. folgende Properties:
Java:
// Oder mit @Autowired
@Resource
private MyService myService;
Es gibt natürlich die Bean mit Namen "myService", welche von Spring erstellt wird.
Ich versuche nun mit folgendem Code, den "myService" zu injizieren:
Java:
public class Test implements ApplicationContextAware {
private ApplicationContext applicationContext;
public Foo createFoo() {
Foo foo = new Foo();
applicationContext.getAutowireCapableBeanFactory().autowireBeanProperties(
foo, AutowireCapableBeanFactory.AUTOWIRE_AUTODETECT, true );
return foo;
}
@Override
public void setApplicationContext( ApplicationContext applicationContext ) throws BeansException {
this.applicationContext = applicationContext;
}
}
In dem Beispiel wird "Foo" zwar erstellt (durch den Aufruf von Test.createFoo()), aber das Autowiring funktioniert nicht. Das heißt, das "myService" property von "Foo" bleibt null, Spring macht also anscheinend gar nichts ("myService" gibt es aber, und kann auch via "@Resource" injiziert werden, wenn ich den POJO ebenfalls als Bean deklariere, also nur um mal ganz generelle Fehler auszuschließen).
Hat jemand eine Idee, woran das liegen könnte?
Vielen Dank für Eure Hilfe!