Maison > Java > javaDidacticiel > Spring Framework Learning (2) Injection de dépendances

Spring Framework Learning (2) Injection de dépendances

黄舟
Libérer: 2016-12-29 13:10:09
original
1379 Les gens l'ont consulté

Le framework Spring nous propose trois méthodes d'injection, à savoir l'injection d'ensemble, l'injection de constructeur et l'injection d'interface. L'injection d'interface n'est pas nécessaire. Les deux premières méthodes sont présentées ci-dessous.

1, set injection
Utilisez la méthode set de l'attribut à initialiser, appelée set injection.
1) Attribuez des valeurs aux types de caractères courants.

public class User{
   privateString username;
 
   publicString getUsername() {
       returnusername;
   }
   publicvoid setUsername(String username) {
      this.username= username;
   }
}
Copier après la connexion

Il suffit de fournir la méthode set de l'attribut, puis d'aller dans le fichier de propriétés pour le configurer afin que le framework puisse trouver la balise beans du fichier applicationContext.xml. Ajoutez une balise de bean pour baliser les beans,
spécifiez l'identifiant, la valeur de la classe, la valeur de l'identifiant n'est pas requise, la valeur de la classe est le chemin complet où se trouve l'objet. Ajoutez la balise property
à la balise du bean et la valeur du nom doit être cohérente avec le nom de la propriété correspondante dans la classe User. La valeur value est la valeur que nous voulons attribuer à l'attribut username dans la classe User.

<bean id="userAction"class="com.lsz.spring.action.User" >
	<property name="username" value="admin"></property>
</bean>
Copier après la connexion

2) Attribuer une valeur à l'objet
Fournissez également la méthode set de l'objet

public class User{
     private UserService userservice;
     public UserServicegetUserservice() {
          returnuser;
     }
     public void setUserservice(UserService userservice){
         this.userservice= userservice;
     }
}
Copier après la connexion

Dans le fichier de configuration, ajoutez la déclaration du bean label de UserService et la référence de l’objet User à UserService.

<!--对象的声明-->
<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>
Copier après la connexion

Avec cette configuration, le framework injectera l'objet UserService dans la classe User.

3) Attribuer des valeurs à la collection de listes
fournit également la méthode set

public class User{
    privateList<String> username;
    publicList<String> getUsername() {
        returnusername;
    }
    publicvoid setUsername(List<String> username) {
        this.username= username;
    }
}
Copier après la connexion
<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>
Copier après la connexion

4) Attribuer des valeurs aux champs du fichier de propriétés

public class User{
    privateProperties props ;
    publicProperties getProps() {
        returnprops;
    }
    publicvoid setProps(Properties props) {
        this.props= props;
    }
}
Copier après la connexion
<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>
Copier après la connexion

La valeur clé dans la balise est le nom dans le fichier de propriétés .properties

Remarque :
Quelle que soit la valeur attribuée, le nom La valeur de l'attribut de la balise dans le fichier de configuration doit être et Les noms des objets sont cohérents.


2 Injection de constructeur
1) Le constructeur a un paramètre

public class User{
    privateString usercode;
    publicUser(String usercode) {
        this.usercode=usercode;
    }
}
Copier après la connexion
<bean id="userAction"class="com.lsz.spring.action.User">                        
    <constructor-argvalue="admin"></constructor-arg>                        
</bean>
Copier après la connexion

2) Quand le constructeur a deux paramètres
Quand le paramètre n'est pas Lors de l'utilisation du type chaîne, le type doit être spécifié dans le fichier de configuration. Si le type n'est pas spécifié, la valeur sera attribuée en fonction du type de chaîne.
Lorsque les types de paramètres sont incohérents, le framework recherche en fonction du type de chaîne, donc l'emplacement du paramètre doit être spécifié dans le fichier de configuration

<constructor-argvalue="admin"index="0"></constructor-arg>                
<constructor-argvalue="23" type="int"index="1"></constructor-arg>
Copier après la connexion

Ceci est spécifié dans le constructeur, first Le premier paramètre est de type string et le deuxième paramètre est de type int


Ce qui précède est le contenu de l'injection de dépendances Spring Framework Learning (2) Pour plus d'informations. contenu, veuillez faire attention au site Web PHP chinois (www.php.cn) !


Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal