XML által definiált bab a tavaszi indításkor

1. Bemutatkozás

A 3.0 tavasz előtt az XML volt az egyetlen módja a bab meghatározásának és konfigurálásának. Bemutatták a 3.0 tavaszt JavaConfig, amely lehetővé teszi számunkra a bab konfigurálását Java osztályok használatával. Az XML konfigurációs fájlokat azonban ma is használják.

Ebben az oktatóanyagban megvitatjuk hogyan lehet integrálni az XML-konfigurációkat a Spring Boot-ba.

2. A @ImportResource Megjegyzés

A @ImportResource az annotáció lehetővé teszi számunkra, hogy egy vagy több babdefiníciót tartalmazó erőforrást importáljunk.

Tegyük fel, hogy van egy bab.xml fájl a bab meghatározásával:

A Spring Boot alkalmazásban való használatához megtehetjük használja a @ImportResource annotáció, megmondva, hogy hol találja a konfigurációs fájlt:

@Configuration @ImportResource ("classpath: beans.xml") public class SpringBootXmlApplication megvalósítja a CommandLineRunner {@Autowired privát Pojo pojo; public static void main (String [] args) {SpringApplication.run (SpringBootXmlApplication.class, args); }}

Ebben az esetben a Pojo példányban beadják a bab.xml.

3. A tulajdonságok elérése XML-konfigurációkban

Mi a helyzet a tulajdonságok használatával XML konfigurációs fájlokban? Tegyük fel, hogy a tulajdonunkban bejelentett ingatlant akarjuk használni alkalmazás.tulajdonságok fájl:

minta = karakterlánc a tulajdonságokból betöltve!

Frissítsük a Pojo meghatározás, in bab.xml, hogy a minta ingatlan:

Ezután ellenőrizzük, hogy a tulajdonság megfelelően szerepel-e:

@RunWith (SpringRunner.class) @SpringBootTest (class = SpringBootXmlApplication.class) nyilvános osztály SpringBootXmlApplicationIntegrationTest {@Autowired private Pojo pojo; @Value ("$ {sample}") privát karakterlánc minta; @Test public void whenCallingGetter_thenPrintingProperty () {assertThat (pojo.getField ()) .isNotBlank () .isEqualTo (minta); }}

Sajnos ez a teszt nem fog sikerülni, alapértelmezés szerint az XML konfigurációs fájl nem tudja megoldani a helyőrzőket. Ezt azonban megoldhatjuk a @EnableAutoConfiguration kommentár:

@Configuration @EnableAutoConfiguration @ImportResource ("classpath: beans.xml") public class SpringBootXmlApplication implementálja a CommandLineRunner {// ...}

Ez a megjegyzés lehetővé teszi az automatikus konfigurálást, és megkísérli konfigurálni a babot.

4. Ajánlott megközelítés

Folytathatjuk az XML konfigurációs fájlok használatát. De megfontolhatjuk az összes konfiguráció áthelyezését is JavaConfig pár okból. Első, a bab konfigurálása a Java-ban típusbiztonságos, így a fordításkor elkapjuk a típushibákat. Is, Az XML konfiguráció elég nagyra nőhet, ami megnehezíti a karbantartást.

5. Következtetés

Ebben a cikkben azt láttuk, hogyan használhatjuk az XML konfigurációs fájlokat a babunk meghatározásához a Spring Boot alkalmazásban. Mint mindig, az általunk használt példa forráskódja elérhető a GitHubon.