1. Was kann Frühling tun?
Der Hauptzweck des Frühlings ist es, J2EE einfach zu verwenden und gute Programmiergewohnheiten zu fördern.
Der Designkern der umgekehrten Steuerbehälter Spring ist das Paket org.springframework.beans, das für die Arbeit mit JavaBeans entwickelt wurde. Dieses Paket wird im Allgemeinen nicht direkt von Benutzern verwendet, dient jedoch als Grundlage für weitere andere funktionale Dienste. Die nächstgelegene Abstraktion höherer Ebene ist "Bean Factory". Die Federbean -Fabrik ist eine normale Fabrik, mit der Objekte mit Namen abgerufen werden können und die Beziehungen zwischen Objekten verwaltet. Bean -Fabriken unterstützen zwei Objektmuster :. Singleton: In diesem Muster gibt es eine gemeinsame Objektinstanz mit einem bestimmten Namen, der beim Aufsehen abgerufen wird. Dies ist die Standardeinstellung und wird am häufigsten verwendet. Es ist ein ideales Muster für staatenlose Objekte. .Prototype: In diesem Modus wird jedes Mal ein separates Objekt erstellt, wenn der Abruf erhalten wird.
2. Federstart -Lade- und Implementierungsmethode
Der erste: Implementieren Sie Vorgänge, bevor Sie Bohnen initialisieren und zerstören, indem Sie die @Postconstruct- und @Predestroy -Methoden annotieren
Der zweite Typ: Definieren Sie init-Methoden- und Destory-Methoden-Methoden in XML
Der dritte Typ: Implementieren Sie die Schnittstellen der Initialisierungsbean und der EinstiegsableBean durch Beans
Der vierte Typ: Schreiben Sie eine Klasse, um die BeanPostProcessor -Schnittstelle zu implementieren. Diese Schnittstelle hat zwei Methoden.
(1): postprozessbeForeinitialisierungsmethode, nennen Sie diese Methode, bevor die im Frühjahr definierte Bean vor der im Frühjahr definierten Bohne initialisiert wird
(2): POSTROCESSAFTERITISIALISILISILISILISILISUNG METHODE, Nennen Sie diese Methode oder Implementierung, nachdem die im Frühjahr definierte Bean initialisiert oder initialisiert wurde.
InstantiationAwarebeanPostProcessor ist eine Subinterbie von BeanPostProcessor
Führen Sie nach dem Laden des Federbehälters aus
Vom Frühlingshörer als Eintrag.
org.springframework.web.context.contextloaderListener
Finden Sie die Methode zur Initialisierung der Feder
/*** Initialisieren Sie den Root -Webanwendungskontext. */ @Override public void contextInitialized (servletContexEvent Ereignis) {initWebApplicationContext (Event.getServletContext ()); }Geben Sie die InitwebApplicationContext -Methode ein
if (this.context == null) {this.context = createwebApplicationContext (ServletContext); } if (this.context instanceof configurableWebApplicationContext) {configurableWebApplicationContext cwac = (configurableWebApplicationContext) this.context; if (! cwac.isactive ()) {// Der Kontext wurde noch nicht aktualisiert -> Stellen Sie Dienste an, wie z. ApplicationContext übergeordnet = loadParentContext (ServletContext); cwac.setParent (Elternteil); } configureandReFreshWebApplicationContext (CWAC, ServletContext); }} ApplicationListener
1. Schreiben Sie eine Hörerklasse, die ApplicationListener implementiert.
org.springFramework.context.ApplicationListener importieren; OnapplicationEvent (contexTreFreshedEvent Ereignis) {if (Event.GetApplicationContext (). getParent () == null) // Root -Anwendungskontext hat keinen Elternteil, er ist der Boss. {// Der logische Code, der ausgeführt werden muss, wird ausgeführt, nachdem der Federcontainer initativiert wurde. System.out.println ("/n/n/n/n/n/n ______________/n/n geladen/n/n _________/n/n"); } // oder die folgende Methode if (Event.GetApplicationContext (). getDisplayName (). Equals ("Root webApplicationContext") {System.out.println ("/n/n/n ________/n/n einmal/n geladen/n/n _________/n/n/n"); }}}2. Setzen Sie das Service-Scan-Paket in der Konfigurationsdatei (ApplicationContext-servlet.xml).
<!-- Register @Controller , @Service--> <context:component-scan base-package="com.test.controller" use-default-filters="false"> <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" /> <context:include-filter type="annotation" Expression = "org.springframework.stereotype.Service" /> < /context: component-scan>
3. Bereiten Sie das Startprojekt ein und drucken Sie "Last" nach dem Laden der Feder aus
ApplicationOntext und WebApplicationOntext Nach Verwendung von MVC werden die obige Methode zweimal aufgerufen. Wie kann man zwischen diesen beiden Behältern unterscheiden?
Aber zu diesem Zeitpunkt wird es ein Problem geben. Im Webprojekt (SpringMVC) werden zwei Container im System enthalten, einer ist der RootApplication-Kontext, und der andere ist unser eigener Projektname-ServletContext (als Unterkontainer des RootApplication-Kontextes).
In diesem Fall wird die OnapplicationEvent -Methode zweimal ausgeführt. Um die oben genannten Probleme zu vermeiden, können wir den logischen Code nur aufrufen, nachdem der RootApplication -Kontext initialisiert wurde. Wenn die Initialisierung anderer Container abgeschlossen ist, wird keine Verarbeitung durchgeführt. Nach Abschluss des geänderten Code wird der Code geändert.
wie folgt:
@Override public void OnapplicationEvent (contextreFreshedEDEvent Ereignis) {if (Event.GetApplicationContext (). GetParent () == null) {// Root -Anwendungskontext Es gibt keinen Elternteil, es ist der Boss. // Der logische Code, der ausgeführt werden muss, wird ausgeführt, wenn der Federcontainer initialisiert wird. }}Die Reihenfolge der Initialisierung ist:
Konstruktor> @Postconstruct> Initialisierbean> Init-Methode
Zusammenfassen
In diesem Artikel geht es nur um die erste Analyse des Spring -Frameworks in diesem Artikel. Ich hoffe, es wird für alle hilfreich sein. Wenn Sie Fragen haben, können Sie jederzeit eine Nachricht hinterlassen, und der Editor antwortet jedem rechtzeitig. Vielen Dank an Freunde für Ihre Unterstützung für diese Seite!