Es gibt viele Möglichkeiten, Bohnen im Frühling zu bekommen, und ich werde es erneut zusammenfassen:
Der erste Typ: Speichern Sie das ApplicationContext -Objekt während der Initialisierung
ApplicationContext ac = new FileSystemxMlApplicationContext ("ApplicationContext.xml"); Ac.getbean ("BeanID"); HINWEIS: Diese Methode eignet sich für eigenständige Anwendungen mithilfe des Spring Frameworks, und das Programm erfordert, dass das Programm Spring durch Konfigurationsdateien manuell initialisieren kann.
Der zweite Typ: Get ApplicationContext -Objekt über die von Spring bereitgestellte Werkzeugklasse
importieren org.springframework.web.context.support.WebApplicationContextils; ApplicationContext AC1 = WebapplicationContextils.getRequiredWebApplicationContext (ServletContext Sc); ApplicationContext Ac2 = WebApplicationConteClicationContextils. sc); ac1.getbean ("beanid"); Ac2.getbean ("Beanid"); veranschaulichen:
1. Diese beiden Methoden sind für B/S -Systeme mit Spring Framework geeignet, das ApplicationContext -Objekt über das ServletContext -Objekt abrufen und dann die erforderliche Klasseninstanz durch sie erhalten.
2. Die erste Methode bringt eine Ausnahme aus, wenn die Akquisition fehlschlägt, und die zweite Methode gibt NULL zurück.
Der dritte Typ: Von der abstrakten Klasse applicationObjectSupport geerbt
HINWEIS: Die von der abstrakte Klasse ApplicationObjectSupport bereitgestellte Methode von GetApplicationContext () kann die ApplicationContext -Instanz leicht abrufen und dann die Bohne im Federbehälter erhalten. Wenn die Spring initialisiert wird, wird das ApplicationContext -Objekt über die Methode SetApplicationContext (ApplicationContext) der abstrakten Klasse injiziert.
Viertes Typ: Von abstrakten Klassen -WebanapplicationObjectSupport ererbt
Hinweis: Ähnlich wie bei der obigen Methode erhalten Sie die WebApplicationContext -Instanz, indem Sie GetWebApplicationContext () aufrufen.
Fünfter Typ: Implementierung des Schnittstelle ApplicationContextaware
Beschreibung: Implementieren Sie die Methode SetApplicationContext (ApplicationContext Context) dieser Schnittstelle und speichern Sie das ApplicationContext -Objekt. Wenn die Feder initialisiert wird, wird das ApplicationContext -Objekt durch diese Methode injiziert.
Obwohl Spring die letzten drei Methoden zur Implementierung der Vererbung oder Implementierung entsprechender Klassen oder Schnittstellen in normalen Klassen bereitstellt, um die Anwendungscontext -Objekte von Spring bei der Verwendung zu erhalten, müssen Sie bei der Verwendung darauf achten, diese abstrakten Klassen oder Schnittstellen zu erben oder implementieren. Oder das erhaltene ApplicationContext -Objekt ist null.
Im Folgenden wird angezeigt, wie Beans in Frühlingsbehältern erhalten, indem die Schnittstelle applicationContextaware implementiert wird:
Passen Sie zunächst eine Klasse an, die die ApplicationContextaware -Schnittstelle implementiert und die Methoden implementiert:
Paket com.ghj.tool; import org.springframework.beans.beansexception; import org.springframework.context.applicationContext; private statische Springconfringool Springconfrigtool = NULL; public synchronisierte statische SpringconFigTool init () {if (SpringConFigTool == null) {SpringConFigTool = new SpringConFigTool (); } return SpringConFigTool; } public void setApplicationContext (ApplicationContext applicationContext) löst beansexception {ac = applicationContext; } public synchronisiertes statisches Objekt getBean (String beanname) {return ac.getbean (Beanname); }} Zweitens konfigurieren Sie es in der Datei applicationContext.xml:
Kopieren Sie den Code wie folgt: <bean id = "SpringConFigTool"/>
Schließlich können Sie die entsprechende Bohne im Federcontainer über den folgenden Code erhalten:
Die Codekopie lautet wie folgt: SpringConFigTool.getbean ("Beanid");
Beachten Sie, dass der Federcontainer, wenn der Server die Initialisierung des Federbehälters startet, nicht mit den folgenden Methoden erhalten werden kann:
import org.springframework.web.context.contextloader; import org.springframework.web.context.webapplicationContext; WebApplicationContext wac = contextloader.getCurrentWebApplicationContext (); Wac.getbean (Beanid);
Das Obige dreht sich alles um diesen Artikel, ich hoffe, es wird für das Lernen aller hilfreich sein.