Maison > Java > javaDidacticiel > Exemples détaillés des deux méthodes d'injection de Spring (Set et construction)

Exemples détaillés des deux méthodes d'injection de Spring (Set et construction)

PHP中文网
Libérer: 2017-06-22 14:49:35
original
1944 Les gens l'ont consulté

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);
	}
}
Copier après la connexion


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

}
Copier après la connexion

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>
Copier après la connexion

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!

É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