Maison >Java >javaDidacticiel >Exemples détaillés des deux méthodes d'injection de Spring (Set et construction)
Méthode d'injection de dépendances dans Spring control flipping
L'injection de dépendances signifie que le contrôle de la relation entre les objets est contrôlé par Le code de l'application est transféré vers le conteneur externe. Le framework Spring propose principalement deux méthodes d'injection de dépendances : l'injection d'ensemble et l'injection de constructeur.
1 : L'injection d'ensemble fait référence à la définition d'une méthode d'ensemble du type à injecter dans la classe qui accepte l'injection, et à la définition de la nécessité d'injecter dans les paramètres éléments. L'injection Set est une méthode directe d'assemblage des propriétés du Bean, mais un inconvénient de l'injection Set est qu'elle suppose que toutes les propriétés variables sont accessibles via la méthode set et ne peut pas indiquer clairement quelles propriétés sont requises et lesquelles sont facultatives.
2 : L'injection de constructeur consiste à définir une méthode de constructeur dans la classe qui reçoit l'injection, et à définir les paramètres qui doivent être injectés dans la méthode de constructeur. L'avantage de l'injection de constructeur est que les dépendances sont appliquées via les constructeurs.
Voici deux façons de l'utiliser :
1 : Dans Myeclipse (l'auteur utilise la version Myeclipse10) Créez un nouveau projet (soit un projet Java, soit un projet Web)
2 : Cliquez avec le bouton droit sur le projet - MyEclipse - Ajouter des fonctionnalités Spring (ajouter le support Spring), sélectionnez la version 3.0 et ajoutez la référence Bibliothèque de classes principales, cliquez sur Suivant
Trois : Choisissez de créer un nouveau fichier de configuration du bean Spring et placez-le dans le répertoire src du projet.
Quatre : cliquez sur Suivant, spécifiez la page de configuration Hibernate, par défaut directement, et cliquez sur Terminer.
Cinq : Créer une nouvelle classe HelloWorld.java
package com.xiami.spring; public class HelloWorld { private String str; /** * 默认构造方法 */ public HelloWorld() { } /** * 用来进行构造注入的构造方法 * * @param str */ public HelloWorld(String str) { this.str = str; } /** * 用来进行Set注入的方法 * @param str */ public void setStr(String str) { this.str = str; } /** * 输出字符串的方法 */ public void sayHello() { System.out.println(str); } }
Six : Créer une nouvelle classe de test Test.java
package com.xiami.spring; import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.xml.XmlBeanFactory; import org.springframework.core.io.ClassPathResource; public class Test { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub //载入spring配置文件 BeanFactory bFactory = new XmlBeanFactory(new ClassPathResource("applicationContext.xml")); HelloWorld helloWorld = (HelloWorld) bFactory.getBean("helloService"); helloWorld.sayHello(); } }
Sept : À l'heure actuelle, la structure du projet est la suivante
Huit : Ouvrez le fichier applicationContext.xml et procédez à l'ajout d'une configuration de bean
Voici deux façons d'ajouter des beans :
1 : Utiliser la configuration de la classe Bean dans la méthode d'injection Set
Cliquez avec le bouton droit sur l'interface d'édition de applicationContext.xml - Spring - nouveau Ouvrez la fenêtre de l'assistant Bean et renseignez l'ID du Bean (personnalisé). Le nom correspond à getBean("???") dans Test.java. Sélectionnez la classe HelloWorld à injecter. Cliquez sur l'onglet Propriétés pour créer une nouvelle propriété pour. le bean. Nine : Dans la fenêtre de l'assistant d'attribut, remplissez le nom correspondant au nom de l'attribut dans HelloWorld.java, sélectionnez la valeur pour Spring Type, sélectionnez String pour Type et remplissez n'importe quelle valeur pour Value
. Dix : Enregistrez applicationContext.xml Après avoir ajouté le bean, le fichier de configuration a une marque rouge. Les lecteurs peuvent exécuter Test.java pour le tester et constater que la chaîne hello world a été. injecté dans la variable str .
2 : classe Bean. en utilisant la configuration d'injection de constructeur
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <!-- 使用Set方式注入 --> <!-- <span style="color:#ff0000;"><bean id="helloService" class="com.xiami.spring.HelloWorld" abstract="false" lazy-init="default" autowire="default"> <property name="str"> <value type="java.lang.String">hello world</value> </property> </bean></span> --> <!-- 使用构造方法方式注入 <bean id="helloService" class="com.xiami.spring.HelloWorld" abstract="false" lazy-init="default" autowire="default"> <constructor-arg> <value type="java.lang.String">构造方法注入方式</value> </constructor-arg> </bean> --> </beans>
Dans la fenêtre Bean Wizard dans le mode Set ci-dessus, ne sélectionnez pas l'onglet Propriétés, remplacez-le par l'onglet Constructor Args et ajoutez un nouveau. Les paramètres de construction. Index et classe Java n'ont pas besoin d'être renseignés.
Onze : Lors de l'ajout d'un bean constructeur, le premier doit d'abord être commenté ou supprimé. les beans avec le même identifiant ne sont pas autorisés .
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!