Vodič za Spring BeanFactory

1. Uvod

Ovaj će se članak usredotočiti na istraživanje API-ja Spring BeanFactory.

Sučelje BeanFactory pruža jednostavan, ali fleksibilan konfiguracijski mehanizam za upravljanje objektima bilo koje prirode putem Spring IoC spremnika. Pogledajmo neke osnove prije no što zaronimo duboko u ovaj središnji API za proljeće.

2. Osnove - grah i posude

Jednostavno rečeno, grah su java objekti koji čine okosnicu aplikacije Spring i njima upravlja Spring IoC spremnik. Osim što njime upravlja kontejner, u zrnu ne postoji ništa posebno (u svim ostalim aspektima to je jedan od mnogih objekata u aplikaciji).

Spremnik Spring odgovoran je za instanciranje, konfiguriranje i sastavljanje graha. Spremnik dobiva svoje podatke o objektima za instanciranje, konfiguriranje i upravljanje čitanjem metapodataka o konfiguraciji koje definiramo za aplikaciju.

3. Ovisnosti Mavena

Dodajmo potrebnu Mavenovu ovisnost na pom.xml datoteka. Za postavljanje BeanFactory koristit ćemo ovisnost Spring Beans:

 org.springframework proljetni grah 5.2.8.OBUSTAVLJANJE 

4. The BeanFactory Sučelje

Zanimljivo je započeti s pregledom definicije sučelja u org.springframework.beans.factory paket i ovdje raspravite neke od njegovih važnih API-ja.

4.1. The getBean () Apis

Razne verzije getBean () metoda vraća instancu navedenog graha, koji može biti podijeljen ili neovisan u aplikaciji.

4.2. The containsBean () API

Ova metoda potvrđuje sadrži li ova tvornica graha grah s danim imenom. Točnije, potvrđuje je li getBean (java.lang.String) u mogućnosti dobiti primjerak graha s danim imenom.

4.3. The isSingleton () API

The jeSingleton API se može koristiti za upit je li ovaj grah zajednički singleton. To jest ako getBean (java.lang.String) uvijek će vraćati istu instancu.

4.4. The isPrototype () API

Ovaj će API potvrditi ako getBean (java.lang.String) vraća neovisne instance - što znači da je grah konfiguriran s opsegom prototipa ili ne.

Važno je napomenuti da se ova metoda vraća lažno ne ukazuje jasno na pojedinačni objekt. Označava nesamostalne slučajeve, koji mogu odgovarati i drugim opsezima.

Moramo koristiti isSingleton (java.lang.String) operacija za izričitu provjeru dijeljene pojedinačne instance.

4.5. Ostali API-ji

Dok isTypeMatch (naziv niza, ciljni tip klase) metoda provjerava odgovara li grah s navedenim imenom navedenom tipu, getType (naziv niza) je koristan u identificiranju vrste graha s danim imenom.

Konačno, getAliases (naziv niza) vratite pseudonime za dato ime graha, ako ih ima.

5. BeanFactory API

BeanFactory sadrži definicije graha i instancira ih kad god to zatraži klijentska aplikacija - što znači:

  • Brine se o životnom ciklusu graha instancijom i poziva odgovarajuće metode uništavanja
  • Sposoban je stvoriti asocijacije između ovisnih objekata dok ih instancira
  • Važno je naglasiti da BeanFactory ne podržava ubrizgavanje ovisnosti temeljeno na bilješkama, dok ApplicationContext, super set BeanFactory-a

Pročitajte kontekst aplikacije kako biste saznali što može učiniti dodatno.

6. Utvrđivanje graha

Definirajmo jednostavan grah:

zaposlenik u javnoj klasi {private String name; privatno int doba; // standardni konstruktori, getteri i postavljači}

7. Konfiguriranje BeanFactory s XML-om

Možemo konfigurirati BeanFactory s XML-om. Stvorimo datoteku tvornica graha-primjer.xml:

Imajte na umu da smo također stvorili alias za zaposlenik grah.

8. BeanFactory s ClassPathResource

ClassPathResource pripada org.springframework.core.io paket. Pokrenimo brzi test i inicijaliziramo XmlBeanFactory koristeći ClassPathResource kako je prikazano dolje:

javna klasa BeanFactoryWithClassPathResourceTest {@Test javna praznina createBeanFactoryAndCheckEfficieeBean () {Resurs res = new ClassPathResource ("beanfactory-example.xml"); Tvornica BeanFactory = novi XmlBeanFactory (res); Zaposlenik emp = (Zaposlenik) factory.getBean ("zaposlenik"); assertTrue (factory.isSingleton ("zaposlenik")); assertTrue (factory.getBean ("zaposlenik") instance zaposlenika); assertTrue (factory.isTypeMatch ("zaposlenik", Employee.class)); assertTrue (factory.getAliases ("zaposlenik"). duljina> 0); }}

9. Zaključak

U ovom kratkom članku saznali smo o glavnim metodama Proljeće BeanFactory API nudi i primjer koji ilustrira konfiguraciju i njezinu upotrebu.

Kôd koji podupire ove primjere dostupan je na GitHubu.