Fazuľa definovaná v XML na jar pri bootovaní

1. Úvod

Pred jarom 3.0 bol XML jediný spôsob, ako definovať a konfigurovať fazuľa. Jar 3.0 predstavená JavaConfig, čo nám umožňuje konfigurovať fazuľa pomocou tried Java. Konfiguračné súbory XML sa však používajú dodnes.

V tomto výučbe si povieme niečo o tom ako integrovať konfigurácie XML do Spring Boot.

2. The @ImportResource Anotácia

The @ImportResource anotácia nám umožňuje importovať jeden alebo viac zdrojov obsahujúcich definície beanov.

Povedzme, že máme beans.xml súbor s definíciou fazule:

Ak ho chceme použiť v aplikácii Spring Boot, môžeme Použi @ImportResource anotácia, ktorý mu hovorí, kde nájsť konfiguračný súbor:

@Configuration @ImportResource ("classpath: beans.xml") verejná trieda SpringBootXmlApplication implementuje CommandLineRunner {@Autowired private Pojo pojo; public static void main (String [] args) {SpringApplication.run (SpringBootXmlApplication.class, args); }}

V takom prípade Pojo inštancia bude injikovaná s fazuľou definovanou v beans.xml.

3. Prístup k vlastnostiam v konfiguráciách XML

A čo použitie vlastností v konfiguračných súboroch XML? Povedzme, že chceme použiť nehnuteľnosť deklarovanú v našom application.properties spis:

sample = reťazec načítaný z vlastností!

Poďme aktualizovať Pojo definícia, v beans.xml, zahrnúť vzorka nehnuteľnosť:

Ďalej overíme, či je vlastnosť správne zahrnutá:

@RunWith (SpringRunner.class) @SpringBootTest (classes = SpringBootXmlApplication.class) verejná trieda SpringBootXmlApplicationIntegrationTest {@Autowired private Pojo pojo; @Value ("$ {sample}") súkromná vzorka reťazca; @Test public void whenCallingGetter_thenPrintingProperty () {assertThat (pojo.getField ()) .isNotBlank () .isEqualTo (vzorka); }}

Bohužiaľ, tento test nebude úspešný, pretože predvolene konfiguračný súbor XML nedokáže vyriešiť zástupné symboly. Môžeme to však vyriešiť zahrnutím @EnableAutoConfiguration anotácia:

@Configuration @EnableAutoConfiguration @ImportResource ("classpath: beans.xml") verejná trieda SpringBootXmlApplication implementuje CommandLineRunner {// ...}

Táto anotácia umožňuje automatickú konfiguráciu a pokusy o konfiguráciu fazule.

4. Odporúčaný prístup

Môžeme pokračovať v používaní konfiguračných súborov XML. Môžeme však tiež zvážiť presunutie celej konfigurácie na JavaConfig z niekoľkých dôvodov. Najprv, konfigurácia fazule v Jave je typovo bezpečná, takže chyby typu zachytíme v čase kompilácie. Tiež Konfigurácia XML môže pomerne narásť, čo sťažuje jeho údržbu.

5. Záver

V tomto článku sme videli, ako používať konfiguračné súbory XML na definovanie našich bôbov v aplikácii Spring Boot. Ako vždy, zdrojový kód príkladu, ktorý sme použili, je k dispozícii na stránkach GitHub.


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