Ich muss Prototyp-Klasse von Singleton bekommen. Ich fand, dass die Methode Injektion ist der Weg zu gehen, aber ich weiß nicht wirklich, wie man Spring @ Lookup Annotation verwenden.Wie benutzt man Spring @ Lookup Annotation?
Ich bin neu in Abhängigkeit-Injektion, und ich entschied mich, mit Annotation-Konfiguration zu gehen, also möchte ich in dieser Richtung fortsetzen.
Ich fand heraus, dass @Lookup Annotation erst kürzlich hinzugefügt wurde (https://spring.io/blog/2014/09/04/spring-framework-4-1-ga-is-here), aber ich kann nirgendwo finden, wie man es benutzt.
So, hier ist, vereinfachtes Beispiel
Konfigurationsklasse:
@Configuration
@Lazy
public class ApplicationConfiguration implements ApplicationConfigurationInterface {
@Bean
public MyClass1 myClass1() {
return new ContentHolderTabPaneController();
}
@Bean
@Scope("prototype")
public MyClass2 myClass2() {
return new SidebarQuickMenuController();
}
}
Und hier ist Klasse Beispiel:
public class MyClass1 {
doSomething() {
myClass2();
}
//I want this method to return MyClass2 prototype
public MyClass2 myClass2(){
}
}
Wie mache ich das mit @Lookup Anmerkung?
Vielen Dank. Und gibt es eine Möglichkeit, das MyClass1 Bean in einer Factory-Stil-Bean-Deklaration als Abhängigkeit zu verwenden? – Miljac
Dann implementieren wir unsere eigene Lookup-Methode - zum Glück ist es sehr einfach. Siehe mein Update zur Antwort. – qingbo
Aber ist das nicht die Absicht, DI zu vereiteln, weil Bean eigentlich auf den DI-Container achten muss? – Miljac