Comment fonctionne l'injection de dépendance au printemps?

Dependency Injection

Vue d'ensemble

injection de printemps de haricot est également populairement connu comme «l'injection de dépendance (DE)’. Le cœur du framework Spring est 'Inversion Of Control (IoC)’ et DI est la partie de mise en œuvre de IoC. Nous allons commencer notre discussion avec l'hypothèse que le concept et le but de IoC et DI est connaissent déjà.

In this article, nous allons nous concentrer sur les différents types d'injections de printemps de haricots avec quelques exemples de codage pratiques.








Dependency injection

injections de printemps de haricots peuvent être effectuées de deux façons majeures, l'un est connu comme DI basé Constructor et l'autre est connu comme DI base-Setter. Dans les sous-sections suivantes, nous allons vérifier comment ceux-ci peuvent être atteints.

Constructor Based DI

Dans un DI basé constructeur, dépendances sont injectés par les constructeurs. Chaque argument du constructeur est un objet de dépendance / bean. Le conteneur Spring invoque les constructeurs avec les arguments.

Laissez-nous vérifier un exemple. Il existe deux classes, on est le Pays classe et l'autre est le Etat classe. La Pays classe a une dépendance à l'égard Etat classe. So, nous passerons la dépendance à la Pays classe par son constructeur (as shown below).

Listing 1: classe Pays

package com.techalpine.spring;

public class Pays {

Etat privé de l'Etat;

publique Pays(Etat de l'Etat) {

System.out.println(“A l'intérieur constructeur Pays.” );

this.state = état;

}

stateName public void() {

state.stateName();

}

}








Now, cette dépendance peut être utilisé pour appeler les différentes méthodes.

Suite est la Etat extraits de code de classe.

Listing 2: classe État

package com.techalpine.spring;

État de la classe publique {

État public(){

System.out.println(“A l'intérieur constructeur État.” );

}

stateName public void() {

System.out.println(“Inside Nom État: West Bengal”);

}

}

Suite est le fichier de configuration XML câbler ces haricots et leurs dépendances. L'identifiant de haricot ('StateBean') of the Etat classe est utilisée comme référence argument du constructeur dans la Pays définition de haricot de classe. Now, les fèves sont définis et câblés ensemble.

Listing 3: fichier de configuration XML

<?xml version=”1.0″ encoding=”UTF-8″?>

<haricots xmlns =”http://www.springframework.org/schema/beans”

xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”

xsi:schemaLocation=”http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-3.2.xsd”>

<!– Définition pour Country bean –>

<id = bean”countryBean” class =”com.techalpine.spring.Country”>

<constructeur-arg ref =”stateBean”/>

</haricot>

<!– Définition pour bean État –>

<id = bean”stateBean” class =”com.techalpine.spring.State”>

</haricot>

</des haricots>

Ce qui suit est la classe principale pour tester l'injection de haricots à base de constructeur-.

Listing 4: fichier d'application principal

package com.techalpine.spring;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.FileSystemXmlApplicationContext;

TestBeanInjection public class {

public static void main(Chaîne[] args) {

ApplicationContext contexte = new FileSystemXmlApplicationContext(

“WebContent / WEB-INF / beanConfig.xml”);

Pays countryobj = (Pays)context.getBean(“countryBean”);

countryobj.stateName();

}

}








Now, exécuter la classe comme une application autonome et il affichera la sortie suivante sur la console.

Intérieur constructeur État
A l'intérieur constructeur Pays
Inside Nom État: West Bengal

Ensembles Bases DI

Dans un DI basé Setter, dépendances sont passés à travers des méthodes setter. conteneur Spring invoque ces méthodes setter à instancier les fèves. Here, le mécanisme et les composants sont presque similaires au constructeur en fonction DI. La seule différence est, dans le passage des dépendances et la configuration XML. Dans une injection à base setter, <propriété> tags sont utilisés à la place de <constructeur-arg> tag.








Conclusion

Dans cet article, nous avons expliqué les façons comment les fèves de printemps peuvent être injectés. Il n'y a pas de règle claire quand utiliser DI base setter basé ou d'un constructeur. Nous allons généralement constructeur basé DI lorsque les dépendances sont obligatoires, et sélectionnez DI en fonction setter-lorsque les dépendances sont facultatifs. Mais une combinaison des deux sont également autorisés.

 

============================================= ============================================== Buy best TechAlpine Books on Amazon
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share