How dependency injection works in Spring?

Dependency Injection

Yleiskatsaus

Spring bean injection is also popularly known as ‘Dependency Injection (OF)’. The heart of Spring framework is ‘Inversion Of Control (IoC)’ and DI is the implementation part of IoC. We will start our discussion with the assumption that the concept and purpose of IoC and DI is already know.

In this article, we will focus on different types of Spring bean injections with some practical coding examples.








Dependency Injection

Spring bean injections can be performed in two major ways, one is known as Constructor-based DI and the other one is known as Setter-based DI. In the following sub-sections we will check how these can be achieved.

Constructor Based DI

In a constructor based DI, dependencies are injected through constructors. Kukin argumentti rakentaja on riippuvuus objekti / papu. Kevään säiliö vetoaa rakentajien kanssa argumentit.

Olkaamme tarkistaa yksi esimerkki. On olemassa kaksi luokkaa, yksi on Maa luokka ja toinen on Osavaltio luokka. The Maa luokka on riippuvuutta Osavaltio luokka. So, ylitämme riippuvuus on Maa luokan kautta rakentajan (kuten alla).

Listing 1: Maa class

paketti com.techalpine.spring;

public class Maa {

yksityinen State tila;

julkinen Maa(valtion tila) {

System.out.println(“Sisällä Country rakentaja.” );

this.state = tila;

}

public void stateName() {

state.stateName();

}

}








Now, Tämä riippuvuus voidaan soittaa eri menetelmiä.

Seuraavassa on Osavaltio class koodinpätkiä.

Listing 2: valtion class

paketti com.techalpine.spring;

public class State {

julkinen State(){

System.out.println(“Sisällä State rakentaja.” );

}

public void stateName() {

System.out.println(“Sisällä State nimi: West Bengal”);

}

}

Seuraavassa on XML asetustiedosto lanka nämä pavut ja niiden riippuvuudet. Papu id ("StateBean") of the Osavaltio luokka käytetään rakentaja argumentti viittaus Maa class papu määritelmä. Now, pavut määritellään ja kytketty toisiinsa.

Listing 3: XML asetustiedosto

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

<pavut 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”>

<!– Määritelmä Country papu –>

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

<rakentaja-arg ref =”stateBean”/>

</papu>

<!– Määritelmä valtion papu –>

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

</papu>

</pavut>

Seuraavassa on tärkein luokka testata rakentajan perustuvaa papu injektio.

Listing 4: Pääkäyttökohde tiedosto

paketti com.techalpine.spring;

tuonti org.springframework.context.ApplicationContext;

tuonti org.springframework.context.support.FileSystemXmlApplicationContext;

public class TestBeanInjection {

public static void main(Jono[] args) {

ApplicationContext yhteydessä = uusi FileSystemXmlApplicationContext(

“Verkkosisältö / WEB-INF / beanConfig.xml”);

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

countryobj.stateName();

}

}








Now, suorita luokkaa kuin stand-alone ja se näyttää seuraavan tuotoksen konsolin.

Sisällä State rakentaja
Sisällä Maa rakentaja
Sisällä State nimi: West Bengal

Sarjaa Bases DI

Vuonna Setter perustuva DI, riippuvuudet läpi asettaja menetelmiä. Spring säiliö vetoaa niitä setteri menetelmiä instantiate pavut. Here, mekanismi ja komponentit ovat lähes samanlaisia ​​kuin rakentajan perustuvan DI. Ainoa ero on,, ohimennen riippuvuuksien ja XML kokoonpano. Vuonna setteri perustuva injektio, <omaisuus> tunnisteita käytetään sijasta <rakentaja-arg> tag.








Johtopäätös

Tässä artikkelissa olemme selittäneet tapoja miten jousi pavut voidaan injektoida. Ei ole selkeä sääntö milloin käyttää asettaja perustuva tai rakentajan perustuu DI. Olemme yleensä mennä rakentaja perustuu DI kun riippuvuudet ovat pakollisia, ja valitse asettaja perustuva DI kun riippuvuudet ovat valinnaisia. Mutta molempien yhdistelminä ovat myös sallittuja.

 

Tagged on: , ,
============================================= ============================================== Osta parhaat tekniset kirjat Amazonista,en,sähköasentaja CT -kastaja,en
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share