Lassen Sie uns sagen, dass wir eine Klasse:Wie können Abhängigkeiten im Frühjahr in ein selbstinstanziertes Objekt injiziert werden?
public class MyClass {
@Autowired private AnotherBean anotherBean;
}
Dann haben wir ein Objekt dieser Klasse (oder einen anderen Rahmen für die Instanz dieser Klasse erstellt haben).
MyClass obj = new MyClass();
Ist es möglich, noch die Abhängigkeiten zu injizieren? Etwas wie:
applicationContext.injectDependencies(obj);
(Ich denke, Google Guice so etwas wie dieses hat)
Gute Antwort (+1). Es gibt auch eine zweite Methode, mit der Sie Einfluss darauf nehmen können, wie das Autodiring passiert: http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/beans/factory/config/AutowireCapableBeanFactory.html# autowireBeanProperties% 28java.lang.Object,% 20int,% 20boolean% 29 –
Aber was ist, wenn ich zwei Objekte habe und zuerst autowires zweite. Wie beschäftigt sich die Autowire Bean Factory mit Abhängigkeiten in diesem Fall? –
Das ist eigentlich ein schlechtes Muster. Wenn Sie MyBean wirklich so verwenden, haben Sie einfach Konstruktor mit AnotherBean als Parameter. Etwas wie: 'code' private @Autowired AnotherBean Bean; public void doStuff() {MyBean obj = neuer MyBean (Bean); } 'Code'. Scheint so zu sein wie bei all diesen Anmerkungen, die Leute werden wirklich verwirrt und benutzen einfach nicht das Grundmuster, das in Java SDK seit Tag 1 war :( – Denis