Priklausomybės įpurškimas (DI) yra dizaino modelis, kuris pašalina priklausomybę nuo programavimo kodo, kad būtų lengva valdyti ir išbandyti programą. Priklausomybės įpurškimas leidžia laisvai susieti mūsų programavimo kodą. Norėdami geriau suprasti DI, pirmiausia supraskime priklausomybės peržiūrą (DL):
Priklausomybės paieška
Priklausomybės peržiūra yra metodas, kai gauname išteklius po paklausos. Gali būti įvairių būdų gauti išteklių, pavyzdžiui:
A obj = new AImpl();
Tokiu būdu išteklius (A klasės egzempliorius) gauname tiesiogiai pagal naują raktinį žodį. Kitas būdas yra gamyklinis metodas:
A obj = A.getA();
Tokiu būdu gauname išteklius (A klasės egzempliorių) iškviesdami statinį gamyklos metodą getA().
Arba galime gauti išteklius iš JNDI („Java Naming Directory Interface“) kaip:
dvejetainė paieška
Context ctx = new InitialContext(); Context environmentCtx = (Context) ctx.lookup('java:comp/env'); A obj = (A)environmentCtx.lookup('A');
Gali būti įvairių būdų, kaip gauti išteklių, kad gautumėte išteklių. Pažiūrėkime, kokia yra šio požiūrio problema.
Priklausomybės paieškos problemos
Iš esmės yra dvi priklausomybės paieškos problemos.
Priklausomybės injekcija
Priklausomybės įpurškimas yra dizaino modelis, pašalinantis programų priklausomybę. Tokiu atveju informaciją pateikiame iš išorinio šaltinio, pvz., XML failo. Dėl to mūsų kodas yra laisvai susietas ir lengviau išbandomas. Tokiu atveju kodą rašome taip:
class Employee{ Address address; Employee(Address address){ this.address=address; } public void setAddress(Address address){ this.address=address; } }
Tokiu atveju adreso klasės egzempliorių pateikia išorinis šaltinis, pvz., XML failas konstruktoriaus arba nustatymo metodu.
kaip atskleisti paslėptas programas
Du būdai, kaip atlikti priklausomybės injekciją pavasario sistemoje
Pavasario sistema suteikia du būdus, kaip sukelti priklausomybę
- Pagal konstruktorių
- Seterio metodu
Būsimos pavasario priklausomybės injekcijos temos
Priklausomybės įpurškimas pagal konstruktoriųPažiūrėkime, kaip galime sukurti konstruktoriaus priklausomybę.
Priklausomybės įpurškimas seterio metodu
Pažiūrėkime, kaip galime įvesti priklausomybę seterio metodu.