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.