logo

Injekcija ovisnosti u proljeće

  1. Injekcija ovisnosti u proljeće
  2. Pretraživanje ovisnosti
  3. Injekcija ovisnosti

Dependency Injection (DI) je obrazac dizajna koji uklanja ovisnost iz programskog koda tako da se njime može lako upravljati i testirati aplikaciju. Dependency Injection čini naš programski kod labavo povezanim. Da bismo bolje razumjeli DI, prvo shvatimo Dependency Lookup (DL):

Pretraživanje ovisnosti

Dependency Lookup je pristup u kojem dobivamo resurs nakon zahtjeva. Mogu postojati različiti načini za dobivanje resursa, na primjer:

hashmap java
 A obj = new AImpl(); 

Na taj način dobivamo resurs (instancu A klase) izravno novom ključnom riječi. Drugi način je tvornička metoda:

 A obj = A.getA(); 

Na ovaj način dobivamo resurs (instancu A klase) pozivanjem statičke tvorničke metode getA().

Alternativno, resurs možemo dobiti putem JNDI (Java Naming Directory Interface) kao:

velika andhra
 Context ctx = new InitialContext(); Context environmentCtx = (Context) ctx.lookup('java:comp/env'); A obj = (A)environmentCtx.lookup('A'); 

Mogu postojati različiti načini za dobivanje resursa. Pogledajmo problem u ovom pristupu.

Problemi traženja ovisnosti

Postoje uglavnom dva problema traženja ovisnosti.

    čvrsta spojkaPristup pretraživanja ovisnosti čini kod čvrsto povezanim. Ako se resurs promijeni, moramo izvršiti puno izmjena u kodu.Nije lako za testiranjeOvakav pristup stvara puno problema tijekom testiranja aplikacije, posebno u testiranju crne kutije.

Injekcija ovisnosti

Dependency Injection je obrazac dizajna koji uklanja ovisnost programa. U tom slučaju pružamo informacije iz vanjskog izvora kao što je XML datoteka. To čini naš kod labavo povezanim i lakšim za testiranje. U tom slučaju pišemo kod kao:

 class Employee{ Address address; Employee(Address address){ this.address=address; } public void setAddress(Address address){ this.address=address; } } 

U takvom slučaju, instancu klase Adresa pruža vanjski izvor kao što je XML datoteka, bilo metodom konstruktora ili postavljača.

Dva načina za izvođenje ubrizgavanja ovisnosti u okviru Spring

Spring framework nudi dva načina za uvođenje ovisnosti

  • Od Konstruktora
  • Po Setter metodi

Nadolazeće teme u Spring Dependency Injection

Injekcija ovisnosti od strane konstruktora

Pogledajmo kako možemo ubaciti ovisnost po konstruktoru.

jednostavan alat za oblikovanje datuma u Javi

Ubrizgavanje ovisnosti metodom postavljača

Pogledajmo kako možemo ubaciti ovisnost metodom postavljača.