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
Remarque :
Quelle que soit la valeur attribuée, le nom La valeur de l'attribut de la balise
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) !