logo

Függőségi injekció tavasszal

  1. Függőségi injekció tavasszal
  2. Dependency Lookup
  3. Függőség-injekció

A Dependency Injection (DI) egy tervezési minta, amely eltávolítja a függőséget a programozási kódból, így az alkalmazás könnyen kezelhető és tesztelhető. A Dependency Injection lazán összekapcsolja a programozási kódunkat. A DI jobb megértéséhez először ismerjük meg a függőségi keresést (DL):

Dependency Lookup

A Dependency Lookup egy olyan megközelítés, ahol az erőforrást kereslet után kapjuk meg. Az erőforrás beszerzésének többféle módja is lehet, például:

 A obj = new AImpl(); 

Ily módon az erőforrást (az A osztály példányát) közvetlenül új kulcsszóval kapjuk meg. Egy másik módszer a gyári módszer:

legszebb mosoly a világon
 A obj = A.getA(); 

Így a statikus gyári getA() metódus meghívásával kapjuk meg az erőforrást (az A osztály példányát).

Alternatív megoldásként megkaphatjuk az erőforrást a JNDI-től (Java Naming Directory Interface) a következőképpen:

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

Különféle módon lehet elérni, hogy az erőforrás megszerezze az erőforrást. Lássuk a problémát ebben a megközelítésben.

A függőségi keresés problémái

Főleg két probléma van a függőségi kereséssel.

    szoros csatolásA függőségi keresési megközelítés szorosan összekapcsolja a kódot. Ha az erőforrás megváltozik, akkor sok módosítást kell végrehajtanunk a kódban.Nem könnyű tesztelniEz a megközelítés sok problémát okoz az alkalmazás tesztelése során, különösen a fekete doboz tesztelése során.

Függőség-injekció

A Dependency Injection egy tervezési minta, amely eltávolítja a programok függőségét. Ebben az esetben az információkat külső forrásból, például XML fájlból biztosítjuk. Ez lazán csatolja kódunkat, és könnyebben tesztelhető. Ebben az esetben a kódot így írjuk:

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

Ebben az esetben az Address osztály példányát külső forrás, például XML-fájl biztosítja, konstruktor vagy beállító módszerrel.

Két módszer a függőség-injekció végrehajtására a tavaszi keretrendszerben

A tavaszi keretrendszer két módot kínál a függőség beszúrására

  • Konstruktor által
  • Szetter módszerrel

Közelgő témák a tavaszi függőségi injekcióban

Dependency Injection by konstruktor

Nézzük meg, hogyan adhatunk függőséget konstruktorral.


Függőség-injektálás beállító módszerrel

Nézzük meg, hogyan szúrhatunk be függőséget setter módszerrel.