logo

Injekcija odvisnosti spomladi

  1. Injekcija odvisnosti spomladi
  2. Iskanje odvisnosti
  3. Injekcija odvisnosti

Vstavljanje odvisnosti (DI) je vzorec načrtovanja, ki odstrani odvisnost iz programske kode, tako da je upravljanje in testiranje aplikacije enostavno. Dependency Injection naredi našo programsko kodo ohlapno povezano. Da bi bolje razumeli DI, najprej razumemo iskanje odvisnosti (DL):

Iskanje odvisnosti

Iskanje odvisnosti je pristop, pri katerem dobimo vir po zahtevi. Do vira lahko pridete na različne načine, na primer:

 A obj = new AImpl(); 

Na ta način dobimo vir (instanco razreda A) neposredno z novo ključno besedo. Drug način je tovarniška metoda:

niz v Javi
 A obj = A.getA(); 

Na ta način dobimo vir (primerek razreda A) s klicem statične tovarniške metode getA().

Druga možnost je, da vir pridobimo z JNDI (Java Naming Directory Interface) kot:

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

Vir lahko pridobite na različne načine. Poglejmo težavo v tem pristopu.

Težave pri iskanju odvisnosti

Obstajata predvsem dve težavi pri iskanju odvisnosti.

metoda tostring v Javi
    tesno spajanjePristop iskanja odvisnosti naredi kodo tesno povezano. Če se vir spremeni, moramo izvesti veliko sprememb v kodi.Ni enostavno za testiranjeTa pristop povzroča veliko težav pri testiranju aplikacije, zlasti pri testiranju črne skrinjice.

Injekcija odvisnosti

Vstavljanje odvisnosti je vzorec načrtovanja, ki odstrani odvisnost programov. V tem primeru zagotovimo informacije iz zunanjega vira, kot je datoteka XML. To naredi našo kodo ohlapno povezano in lažjo za testiranje. V tem primeru zapišemo kodo kot:

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

V takem primeru se primerek razreda naslova zagotovi z zunanjim virom, kot je datoteka XML, bodisi z metodo konstruktorja ali nastavitve.

Dva načina za izvedbo vbrizgavanja odvisnosti v ogrodje Spring

Spring framework ponuja dva načina za vnos odvisnosti

  • S strani Konstruktorja
  • Po Setterjevi metodi

Prihajajoče teme v Spring Dependency Injection

Vbrizgavanje odvisnosti s konstruktorjem

Poglejmo, kako lahko vnesemo odvisnost s konstruktorjem.

java vrednost enum

Vbrizgavanje odvisnosti z metodo nastavitve

Poglejmo, kako lahko vnesemo odvisnost z metodo nastavitve.