Vorwort
Bevor wir die Instanziierung von Bohnen einführen, müssen wir zunächst vorstellen, was eine Bohne ist und wie Bohnen konfiguriert werden.
Wenn die Frühling als große Fabrik angesehen wird, ist die Bohne im Federbehälter das Produkt dieser Fabrik. Um Spring Factory zu verwenden, um Bohnen zu produzieren und zu verwalten, müssen Sie in der Konfigurationsdatei angeben, welche Bohnen benötigt werden und wie sie zusammengebaut werden.
Spring Container unterstützt zwei Formate von Konfigurationsdateien, nämlich Eigenschaftendateiformat und XML -Dateiformat. In der tatsächlichen Entwicklung ist der am häufigsten verwendete Betrag das XML -Dateiformat. Daher erläutern wir in der folgenden Erläuterung die Konfigurationsmethode des XML -Dateiformats. Das Stammelement einer XML -Konfigurationsdatei ist <Bohnen>, die mehrere untergeordnete Elemente <Bohnen> enthalten kann. Jedes untergeordnete Element definiert eine Bohne und beschreibt, wie die Bohne in einen Federbehälter zusammengestellt werden soll. Die Eigenschaften im Element <Bean> sind wie folgt:
In einer Konfigurationsdatei muss eine gewöhnliche Bean normalerweise nur zwei Attribute definieren: ID und Klasse. Der Weg, eine Bohne zu definieren, ist wie folgt:
<? id = "userDao"/> <bean name = "userDao1, userDaO2"/> </beans>
Im obigen Code werden zwei Bohnen unter Verwendung der ID- und Namensattribute definiert, und die entsprechende Implementierungsklasse wird unter Verwendung des Klassenelements angegeben. Wenn die ID und der Name nicht angegeben sind, verwendet der Feder den Klassenwert als ID.
Vier Möglichkeiten, Bohnen im Frühling zu instanziieren
In diesem Artikel wird hauptsächlich vier Möglichkeiten eingeführt, um Bohnen (Injektionsmethoden) oder vier Möglichkeiten zur Instanziierung von Objekten zu instanziieren. Das obige Programm verwendet die Methode zum Erstellen von Bean -Objekten und die Konstruktormethode (Spring kann Klassenobjekte unter der Privatisierung von Konstruktoren erstellen)
Es gibt vier allgemeine Schöpfungsmethoden:
1) Settermethode
2) Konstruktor
3) Statische Fabrik
4) Beispiel Factory
1. Verwenden Sie die Settermethode
public interface iuserdao {void adduser (); void deluser (); void UpdateUser (); } public class userDaoImpl implementiert iUserdao {public void adduser () {System.out.println ("AddUser -Methode wurde genannt"); } public void deluser () {System.out.println ("Deluser -Methode wurde genannt"); } public void updateUser () {System.out.println ("UpdateUser -Methode wurde genannt"); } public class userAction {private iuserdao dao; // Dao ist ein Abhängigkeitsobjekt, das von Springg verwaltet werden muss und die Get -Set -Methode public void execute () {Dao.adduser () generiert; dao.updateuser (); dao.deluser (); }}// Konfigurationsdatei <bean name = "useraction_name"> <Eigenschaft name = "dao" ref = "userdao_name" /> // Der Name wird unten verwiesen.
// classPathxMlApplicationContext testen ctx = new classPathXmlApplicationContext ("beans.xml"); UserAction -Action = (BenutzerAktion) ctx.getbean ("userAction_name"); action.execute ();2. Konstruktorfunktion
public class userAction {// public userAction () {} Sie können einen Konstruktor ohne Parameter aufbewahren // Dies sind mehrere Abhängigkeiten, und es ist nicht erforderlich, eine Get -Set -Methode private userInfo -Benutzer zu generieren. private Stringschule; privates iuserdao dao; // Ich hoffe, Spring hat das Abhängigkeitsobjekt öffentliche BenutzerAktion (iUserdao dao, userInfo user, String School) {this.dao = Dao injiziert; this.school = Schule; this.user = user; } public void execute () {dao.adduser (); dao.updateuser (); dao.deluser (); System.out.println (Benutzer); System.out.println (Schule);}// Konfigurationsdatei <bean name = "userInfo_name"> <Eigenschaft name = "id" value = "1" /> <Eigenschaft name = "username" value = "weewly" /> <Eigenschaft name = "password" value = "123" /> <Eigenschaft name = "note" value = "is a note" /> < /bean> <Aneanname = "useraction_name" useraction = "useraction =" useraction_name "useraction_name" useraction_name "useraction =" useraction = "useraction =" useraction = "useraction =" useractum "useraction_name". ref = "userDao_name" /> <constructor-arg ref = "userInfo_name" /> <constructor-arg value = "Harbin Normal University" /> < /bean> /*Sie können auch Index- und Typ-Eigenschaften eingeben, weder Index noch Type "useractiondaName" useraction_name "> <constructor-arker-arr-" -Arg-Index = "0". type = "cat.dao.iuserdao" /> Wenn es sich um eine Schnittstelle handelt, kann es für den Typ der Implementierungsklasse nicht angegeben werden. name = "userDao_name" />
// classPathxMlApplicationContext testen ctx = new classPathXmlApplicationContext ("beans.xml"); UserAction -Action = (BenutzerAktion) ctx.getbean ("userAction_name"); action.execute ();3. statische Fabrikmethode
// Factory, die Implementierungsklasse, die zur Generierung von DAO Public Class UserDaOfactory verwendet wird {public static iUserdao createUserDaOinstance () {return New UserDaoorAcleImpl (); }} public class userAction {private iuserdao dao; // Fabrikmethode verwenden, um auf den Wert zu achten und auch die Set -Methode public void execute () {Dao.Adduser () zu generieren; dao.updateuser (); dao.deluser ();} public void setdao (iuserdao dao) {this.dao = dao; }}// Konfigurationsdatei <bean name = "useraction_name"> <Eigenschaft name = "dao" ref = "userdao_name" /> < /bean> <bean name = "userdao_name" factory-method = "createUserdaoinstance" />
// classPathxMlApplicationContext testen ctx = new classPathXmlApplicationContext ("beans.xml"); UserAction -Action = (BenutzerAktion) ctx.getbean ("userAction_name"); action.execute ();Iv. Beispiel Factory
// factory => public class userDaofactory {// Diese Methode ist keine statische öffentliche iUSERDAO CREATEUSERDAOINSTANCE () {return New UserDaoorAclImpl (); }}// Konfigurationsdatei <bean name = "useraction_name"> <Eigenschaft name = "dao" ref = "userDao_name" /> < /bean> <bean name = "userDaofactory_name" /> <bean name = "userdao_name" factory-bean = "userdaofactory_name" /factory-name = "factory-name
Zusammenfassen
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Referenzwert für das Studium oder die Arbeit eines jeden hat. Wenn Sie Fragen haben, können Sie eine Nachricht zur Kommunikation überlassen. Vielen Dank für Ihre Unterstützung bei Wulin.com.