Heim Java javaLernprogramm Spring Framework Learning (2) Abhängigkeitsinjektion

Spring Framework Learning (2) Abhängigkeitsinjektion

Dec 29, 2016 pm 01:10 PM

Das Spring Framework bietet uns drei Injektionsmethoden: Set-Injektion, Konstruktor-Injektion und Schnittstellen-Injektion. Eine Schnittstelleninjektion ist nicht erforderlich. Die ersten beiden Methoden werden im Folgenden vorgestellt.

1, Injektion festlegen
Verwenden Sie zum Initialisieren die Set-Methode des Attributs, die als Set-Injektion bezeichnet wird.
1) Weisen Sie allgemeinen Zeichentypen Werte zu.

1

2

3

4

5

6

7

8

9

10

public class User{

   privateString username;

  

   publicString getUsername() {

       returnusername;

   }

   publicvoid setUsername(String username) {

      this.username= username;

   }

}

Nach dem Login kopieren

Wir müssen nur die Set-Methode des Attributs bereitstellen und dann zur Eigenschaftendatei gehen, um sie zu konfigurieren, damit das Framework das Beans-Tag der Datei applicationContext.xml finden kann. Bean-Tag zu Tag-Beans hinzufügen,
ID und Klassenwert angeben, ID-Wert ist nicht erforderlich, Klassenwert ist der vollständige Pfad, in dem sich das Objekt befindet. Fügen Sie dem Bean-Tag das Tag property
hinzu. Der Namenswert muss mit dem entsprechenden Eigenschaftsnamen in der Benutzerklasse übereinstimmen. Der Wertwert ist der Wert, den wir dem Benutzernamenattribut in der Benutzerklasse zuweisen möchten.

1

2

3

<bean id="userAction"class="com.lsz.spring.action.User" >

    <property name="username" value="admin"></property>

</bean>

Nach dem Login kopieren

2) Weisen Sie dem Objekt einen Wert zu
Stellen Sie außerdem die Set-Methode des Objekts bereit

1

2

3

4

5

6

7

8

9

public class User{

     private UserService userservice;

     public UserServicegetUserservice() {

          returnuser;

     }

     public void setUserservice(UserService userservice){

         this.userservice= userservice;

     }

}

Nach dem Login kopieren

Fügen Sie in der Konfigurationsdatei die Bean-Label-Deklaration von UserService hinzu und die Referenz des Benutzerobjekts auf UserService.

1

2

3

4

5

6

<!--对象的声明-->

<bean id="userService" class="com.lsz.spring.service.UserService"></bean>

  

<bean id="userAction"class="com.lsz.spring.action.User" >

   <property name="userservice" ref="userService"></property>

</bean>

Nach dem Login kopieren

Mit dieser Konfiguration fügt das Framework das UserService-Objekt in die User-Klasse ein.

3) Weisen Sie der Listensammlung Werte zu
stellt auch die Set-Methode bereit

1

2

3

4

5

6

7

8

9

public class User{

    privateList<String> username;

    publicList<String> getUsername() {

        returnusername;

    }

    publicvoid setUsername(List<String> username) {

        this.username= username;

    }

}

Nach dem Login kopieren

1

2

3

4

5

6

7

8

9

<bean id="userAction"class="com.lsz.spring.action.User" >

     <propertyname="username">

           <list>

               <value>zhang,san</value>

               <value>lisi</value>

               <value>wangwu</value>                               

               </list>

    </property>

</bean>

Nach dem Login kopieren

4) Weisen Sie den Feldern in der Eigenschaftendatei Werte zu

1

2

3

4

5

6

7

8

9

public class User{

    privateProperties props ;

    publicProperties getProps() {

        returnprops;

    }

    publicvoid setProps(Properties props) {

        this.props= props;

    }

}

Nach dem Login kopieren

1

2

3

4

5

6

7

8

9

10

<bean>

    <propertyname="props">

        <props>

           <propkey="url">jdbc:oracle:thin:@localhost:orl</prop>

           <propkey="driverName">oracle.jdbc.driver.OracleDriver</prop>

           <propkey="username">scott</prop>

           <propkey="password">tiger</prop>

        </props>

    </property>

</bean>

Nach dem Login kopieren

Der Schlüsselwert im <prop>-Tag ist der Name in der .properties-Eigenschaftsdatei

Hinweis:
Egal welcher Wert zugewiesen ist, der Name Der Attributwert des <property>-Tags in der Konfigurationsdatei muss und sein. Die Namen in den Objekten müssen konsistent sein.


2 Konstruktorinjektion
1) Der Konstruktor hat einen Parameter

1

2

3

4

5

6

public class User{

    privateString usercode;

    publicUser(String usercode) {

        this.usercode=usercode;

    }

}

Nach dem Login kopieren

1

2

3

&lt;bean id=&quot;userAction&quot;class=&quot;com.lsz.spring.action.User&quot;&gt;                       

    &lt;constructor-argvalue=&quot;admin&quot;&gt;&lt;/constructor-arg&gt;                       

&lt;/bean&gt;

Nach dem Login kopieren

2) Wenn der Konstruktor zwei Parameter hat
Wenn der Parameter nicht vorhanden ist Bei Verwendung des String-Typs muss der Typ in der Konfigurationsdatei angegeben werden. Wenn der Typ nicht angegeben ist, wird der Wert entsprechend dem String-Typ zugewiesen.
Wenn die Parametertypen inkonsistent sind, sucht das Framework nach dem Typ der Zeichenfolge, sodass der Speicherort des Parameters in der Konfigurationsdatei angegeben werden muss

1

2

&lt;constructor-argvalue=&quot;admin&quot;index=&quot;0&quot;&gt;&lt;/constructor-arg&gt;               

&lt;constructor-argvalue=&quot;23&quot; type=&quot;int&quot;index=&quot;1&quot;&gt;&lt;/constructor-arg&gt;

Nach dem Login kopieren

Dies wird im Konstruktor angegeben. 1. Der erste Parameter ist vom Typ String und der zweite Parameter vom Typ int.


Das Obige ist der Inhalt der Abhängigkeitsinjektion von Spring Framework Learning (2). Inhalt, achten Sie bitte auf die chinesische PHP-Website (www.php.cn)!


Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Verwenden Sie Spring Boot und Spring AI, um generative Anwendungen für künstliche Intelligenz zu erstellen Verwenden Sie Spring Boot und Spring AI, um generative Anwendungen für künstliche Intelligenz zu erstellen Apr 28, 2024 am 11:46 AM

Verwenden Sie Spring Boot und Spring AI, um generative Anwendungen für künstliche Intelligenz zu erstellen

Ändern Sie RequestBody im Spring Gateway Ändern Sie RequestBody im Spring Gateway Feb 09, 2024 pm 07:15 PM

Ändern Sie RequestBody im Spring Gateway

Eine Schritt-für-Schritt-Anleitung zum Verständnis der Abhängigkeitsinjektion in Angular Eine Schritt-für-Schritt-Anleitung zum Verständnis der Abhängigkeitsinjektion in Angular Dec 02, 2022 pm 09:14 PM

Eine Schritt-für-Schritt-Anleitung zum Verständnis der Abhängigkeitsinjektion in Angular

So verwenden Sie die Abhängigkeitsinjektion (Dependency Injection) im Phalcon-Framework So verwenden Sie die Abhängigkeitsinjektion (Dependency Injection) im Phalcon-Framework Jul 30, 2023 pm 09:03 PM

So verwenden Sie die Abhängigkeitsinjektion (Dependency Injection) im Phalcon-Framework

JAX-RS vs. Spring MVC: Ein Kampf zwischen RESTful-Giganten JAX-RS vs. Spring MVC: Ein Kampf zwischen RESTful-Giganten Feb 29, 2024 pm 05:16 PM

JAX-RS vs. Spring MVC: Ein Kampf zwischen RESTful-Giganten

Vertiefendes Verständnis der Architektur und Arbeitsprinzipien des Spring-Frameworks Vertiefendes Verständnis der Architektur und Arbeitsprinzipien des Spring-Frameworks Jan 24, 2024 am 09:41 AM

Vertiefendes Verständnis der Architektur und Arbeitsprinzipien des Spring-Frameworks

Abhängigkeitsinjektion mithilfe des JUnit-Unit-Test-Frameworks Abhängigkeitsinjektion mithilfe des JUnit-Unit-Test-Frameworks Apr 19, 2024 am 08:42 AM

Abhängigkeitsinjektion mithilfe des JUnit-Unit-Test-Frameworks

Das Geheimnis von Java JNDI und Spring-Integration: Enthüllung der nahtlosen Zusammenarbeit von Java JNDI und Spring Framework Das Geheimnis von Java JNDI und Spring-Integration: Enthüllung der nahtlosen Zusammenarbeit von Java JNDI und Spring Framework Feb 25, 2024 pm 01:10 PM

Das Geheimnis von Java JNDI und Spring-Integration: Enthüllung der nahtlosen Zusammenarbeit von Java JNDI und Spring Framework

See all articles