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.
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 konstruktoraPogledajmo 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.