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

Spring Framework Learning (2) Injection de dépendances

黄舟
黄舟original
2016-12-29 13:10:091352parcourir

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;
   }
}

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>

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;
     }
}

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>

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;
    }
}
<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>

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;
    }
}
<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>

La valeur clé dans la balise 23ac7bbddc590263b57e27da10ea2cdf 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 3fcb97bb666cd7884d4d3210fb47b5ef 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;
    }
}
<bean id="userAction"class="com.lsz.spring.action.User">                        
    <constructor-argvalue="admin"></constructor-arg>                        
</bean>

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>

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) !


Déclaration:
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