Vkladanie na základe XML na jar

1. Úvod

V tomto základnom výučbe sa naučíme, ako vykonať jednoduchú konfiguráciu fazule založenú na XML pomocou Spring Framework.

2. Prehľad

Začnime pridaním jarnej závislosti od knižnice v pom.xml:

 org.springframework jarny kontext 5.1.4.RELEASE 

Najnovšiu verziu jarnej závislosti nájdete tu.

3. Injekcia závislostí - prehľad

Vkladanie závislostí je technika, pri ktorej sú závislosti objektu poskytované externými kontajnermi.

Povedzme, že máme triedu aplikácií, ktorá závisí od služby, ktorá skutočne spracováva obchodnú logiku:

verejná trieda IndexApp {súkromná služba IService; // štandardné konštruktory / getre / setre} 

Teraz si povedzme IService je rozhranie:

verejné rozhranie IService {public String serve (); } 

Toto rozhranie môže mať viac implementácií.

Poďme sa rýchlo pozrieť na jednu potenciálnu implementáciu:

verejná trieda IndexService implementuje IService {@Override public String serve () {return "Hello World"; }} 

Tu, IndexApp je komponent na vysokej úrovni, ktorý závisí od tzv. komponentu na nízkej úrovni IService.

V podstate oddeľujeme IndexApp z konkrétnej implementácie IService ktoré sa môžu líšiť v závislosti od rôznych faktorov.

4. Injekcia závislostí - v akcii

Pozrime sa, ako môžeme vložiť závislosť.

4.1. Používanie vlastností

Pozrime sa, ako môžeme prepojiť závislosti pomocou konfigurácie založenej na XML:

Ako je vidieť, vytvárame inštanciu IndexService a priradiť mu id. Štandardne je fazuľa singleton. Tiež vytvárame inštanciu IndexApp.

V rámci tejto fazule vstrekujeme druhú fazuľu pomocou metódy setter.

4.2. Pomocou konštruktora

Namiesto injekcie fazule pomocou metódy setter môžeme závislosť vložiť pomocou konštruktora:

4.3. Používanie statickej továrne

Môžeme tiež vpichnúť fazuľu vrátenú z továrne. Vytvorme jednoduchú továreň, ktorá vráti inštanciu IService na základe dodaného počtu:

verejná trieda StaticServiceFactory {verejná statická IService getNumber (int číslo) {// ...}} 

Teraz sa pozrime, ako by sme mohli použiť vyššie uvedenú implementáciu na vpichnutie fazule IndexApp pomocou konfigurácie založenej na XML:

Vo vyššie uvedenom príklade voláme statický getService metóda pomocou továrenská metóda vytvoriť fazuľa s id messageService do ktorej vstrekujeme IndexApp.

4.4. Pomocou továrenskej metódy

Uvažujme o továrni na inštancie, ktorá vráti inštanciu IService na základe dodaného počtu. Táto metóda nie je tentokrát statická:

verejná trieda InstanceServiceFactory {verejná IService getNumber (int číslo) {// ...}} 

Teraz sa pozrime, ako by sme mohli použiť vyššie uvedenú implementáciu na vpichnutie fazule IndexApp pomocou konfigurácie XML:

Vo vyššie uvedenom príklade voláme getService metóda na príklade InstanceServiceFactory použitím továrenská metóda vytvoriť fazuľa s id messageService do ktorého vstrekujeme IndexApp.

5. Testovanie

Takto môžeme pristupovať k nakonfigurovaným fazuľkám:

@Test public void whenGetBeans_returnsBean () {ApplicationContext applicationContext = new ClassPathXmlApplicationContext ("..."); IndexApp indexApp = applicationContext.getBean ("indexApp", IndexApp.class); assertNotNull (indexApp); } 

6. Záver

V tomto rýchlom výučbe sme ilustrovali príklady toho, ako môžeme vložiť závislosť pomocou konfigurácie založenej na XML pomocou Spring Framework.

Implementáciu týchto príkladov možno nájsť v projekte GitHub - jedná sa o projekt založený na Maven, takže by malo byť ľahké ho importovať a bežať tak, ako je.


$config[zx-auto] not found$config[zx-overlay] not found