Eine Frage stellen
Die Instanziierung von Bohnen im Frühling ist ein wichtiger Bestandteil des Bohnenlebenszyklus. Normalerweise ändert sich die Bohne nach der Initialisierung nicht.
Was ist der Prozess der Frühlingsinstanzbohne? !
Frühlings -Instanziierungsprozessanalyse
Um ein Bean -Objekt zu erhalten, müssen Sie es zuerst über die GetBean () -Methode der Beanfaktorie erhalten. In dieser Zeit wird eine Reihe von Schritten übergeben, um das Bean -Objekt zu instanziieren:
Schritt 1: Rufen Sie den Standardkonstruktor der Bean auf (natürlich können es auch andere Konstruktoren angegeben), um eine Bean -Instanz zu generieren: Bean1.
Schritt 2: Überprüfen Sie, ob der Attributwert der Bean in die Bean -Konfigurationsdatei injiziert wird. Wenn es eine Injektion gibt, injizieren Sie seine Attribute basierend auf der Bean1 -Instanz, überschreiben Sie die ursprüngliche Bean1, um eine neue Bean -Instanz zu bilden: Bean2.
Schritt 3: Überprüfen Sie, ob die Bean die Initialisierungsschnittstelle implementiert. Wenn diese Schnittstelle implementiert ist, rufen Sie die Methode After PropertieStieSt () an, um entsprechende Vorgänge auf Bean2 auszuführen, und überschreiben Sie Bean2, um eine neue Bean -Instanz zu bilden: Bean3.
Schritt 4: Überprüfen Sie, ob die Init-Method-Eigenschaft in der Bean-Konfigurationsdatei angegeben ist. Wenn es angegeben ist, rufen Sie die entsprechende Methode dieser Eigenschaft auf und führen Sie entsprechende Vorgänge auf Bean3 durch und überschreiben Sie schließlich Bean3, um eine neue Instanz zu bilden: Bean4.
Durch die obigen Schritte stellten wir fest, dass sich die Bohne, wenn Spring eine Bohne Instanzen isst, sich ständig ändert!
Frühlings -Instanziierung Bean Process Code Demonstration
Um die obigen Schritte besser zu veranschaulichen, finden Sie im folgenden Code:
Entitätsklasse:
/*** Entitätsklasse*/öffentliche Klasse Mitarbeitern implementiert Initialisierungsbean, DisposableBean, Beannameaware {private String -ID; // Angestellte Nummer privater String -Name; // Arbeitnehmername private String sex; // Angestellte Geschlecht Geschlechtsstring Alter; // Angestellte Altersstring -Fakultät für Private -String -Ureinwohner der Angestellten, private String -Abteilung für Mitarbeiter, private Abteilung private Abteilung private String -String -Aufzeichnung BeAnname BeAnname BeAnname BeAnname BeAnname BeAnname BeAnname BeAnname BeAnname BeAnname BeAnname (BOAR name {System.out.println ("************ SCHRITT 1: Rufen Sie den Standardkonstruktor der Bean *************"); this.id = "Bean1: g080405214"; System.out.println ("Bean1 -Wert:" + this); System.out.println ("*************************************************************************************** {System.out.println ("Bean2 -Wert:" + this); system.out.println ("********************************************************. "bean3: 25"; "bean3: peking"; bean* setSex (String sex) {this.sex = sex;} public String getage () {return ay;} public void setage (String Age) {this.age = älter;} public String getNativeplace () {return nordplace;} public void void setnativeplace (String nativeplace) {this.native place Abteilung) {this.Department = Abteilung;} public String getBeanname () {return beanname;}@override public String toString () {return "Mitarbeiter [id =" + id + ", name =" + name + ", sex =" + sex + ", ay" + aste + ", nordplace =" nordplace = "norrigierte plates +," + ", Department +", Abteilung + ", BeAnname +" + (" +," +), +, ",", ",", ",", "," + "," + "," + "," + "," + "," + "," + "," "]";}}Werkzeuge:
/*** Bean Context Tool Class*/öffentliche Klasse beancontexthelper {private static applicationContext _instance; {return New classPathXmlApplicationContext ("ApplicationContext-Base.xml");}/*** Erhalten Sie ein ApplicationContext-Objekt*/public static applicationContext getApplicationContext () {return _instance;}}Die Bohnenkonfiguration des Frühlings:
<? xmlns: context = "http://www.springframework.org/schema/context" xmlns: aop = "http://www.spingframework.org/schwa XSI: ScheMalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/contex http://www.springframework.org/schema/context/spring-context-2.xsd http://www.springFramework.org/schema/aop http://www.springframework.org/Schema/aop/aPring-aop-2.-- http://www.springframework.org/schema/aop/spring-aop-2.5sd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/sping-tx-2.5.5.5. <!-================ Testen Sie den Prozess der Instanziierung einer Bean im Frühjahr Beanfactory-> <bean id = "Mitarbeiter" init-Methode = "Init" Destroy-Methode = "Destroy"> <!-Die Standardabteilung ist die R & D-Abteilung für Eigenschaften.
Testklasse:
/*** Beanfactory Instanctiation Bean Engineering Test Class*/public class test {public static void main (String args []) {Test test = new test (); test.test ();} public void test () {ApplicationContext context = beancontexThelper.getAPlicationContext (); context.getBean("employee");System.out.println("************From Spring The final bean instance obtained by BeanFactory**********");System.out.println("The value of the final bean:" + employee);}}Auslaufergebnisse:
************ SCHRITT 1: Rufen Sie den Standardkonstruktor der Bean an* Von der Bean ****************** Der Wert von Bean2: Mitarbeiter [ID = Bean1: G080405214, Name = Null, Sex = Null, Alter = null, native Place = null, Abteilung = Bean2: R & D -Abteilung, BeannaNname. Wert von Bean3: Mitarbeiter [ID = Bean1: G080405214, Name = Bean3: Li Xiaohong, Sex = Bean3: weiblich, Alter = Bean3: 25, native Place = null, Abteilung = Bean2: R & D-Abteilung, Beannname]*** Dieses Attribut *************** Die Wert von Bean4: Mitarbeiter [ID = Bean1: G080405214, Name = Bean3: Li Xiaohong, Sex = Bean3: weiblich, Alter = Bean3, 25, native Place = Bean3: PEIJING, Abteilung = Bean2*********************************************** Spring Beanfactory***********
Nach den Betriebsergebnissen sollten wir über den spezifischen Prozess der Bean -Instanziierung sehr klar sein.
Mitarbeiter implementiert 3 Schnittstellen:
Initialisierungsbean: Diese Schnittstelle liefert die Methode nach der PropertieStieSt (), mit der Bean die Funktion der Definition der Initialisierung bereitstellt.
DisposableBean: Diese Schnittstelle bietet eine Destroy () -Methode, mit der die Betriebsfunktionen vorgegangen sind, bevor die Bean -Instanz zerstört wird.
BeAnNameAwary: Diese Schnittstelle bietet die SetBeanname () -Methode, mit der die Funktion zum Einstellen des Bean -Namens bereitgestellt wird. Aus den obigen laufenden Ergebnissen wird diese Methode im zweiten Schritt durchgeführt.
Zusammenfassen
Das obige ist der gesamte Inhalt dieses Artikels über den Prozess der Instanziierung einer Bohne im Frühjahr. Ich hoffe, es wird für alle hilfreich sein. Interessierte Freunde können weiterhin auf diese Seite verweisen:
" Zwei Möglichkeiten, den Erwerb von Bohnen im Frühling anzupassen "
" Java's Spring Annotation Configuration Bean Instance -Code -Analyse "
" Detaillierte Erläuterung des Lebenszyklus der Federkonfiguration und Verwendung "
Wenn es Mängel gibt, hinterlassen Sie bitte eine Nachricht, um darauf hinzuweisen. Vielen Dank an Freunde für Ihre Unterstützung für diese Seite!