XML Defined Beans in Spring Boot

1. Introduksjon

Før våren 3.0 var XML den eneste måten å definere og konfigurere bønner på. Våren 3.0 introdusert JavaConfig, slik at vi kan konfigurere bønner ved hjelp av Java-klasser. Imidlertid brukes XML-konfigurasjonsfiler fortsatt i dag.

I denne opplæringen vil vi diskutere hvordan du integrerer XML-konfigurasjoner i Spring Boot.

2. Den @ImportResource Kommentar

De @ImportResource kommentar lar oss importere en eller flere ressurser som inneholder bønnedefinisjoner.

La oss si at vi har en bønner.xml fil med definisjonen av en bønne:

For å bruke den i en Spring Boot-applikasjon, kan vi bruke @ImportResource kommentar, og forteller den hvor du finner konfigurasjonsfilen:

@Configuration @ImportResource ("classpath: beans.xml") offentlig klasse SpringBootXmlApplication implementerer CommandLineRunner {@Autowired privat Pojo pojo; public static void main (String [] args) {SpringApplication.run (SpringBootXmlApplication.class, args); }}

I dette tilfellet Pojo forekomst vil bli injisert med bønnen definert i bønner.xml.

3. Få tilgang til egenskaper i XML-konfigurasjoner

Hva med å bruke egenskaper i XML-konfigurasjonsfiler? La oss si at vi vil bruke en eiendom erklært i vår application.properties fil:

sample = streng lastet fra egenskaper!

La oss oppdatere Pojo definisjon, i bønner.xml, for å inkludere prøve eiendom:

La oss deretter kontrollere om eiendommen er riktig inkludert:

@RunWith (SpringRunner.class) @SpringBootTest (klasser = SpringBootXmlApplication.class) offentlig klasse SpringBootXmlApplicationIntegrationTest {@Autowired private Pojo pojo; @Value ("$ {sample}") privat strengeksempel; @Test offentlig ugyldig nårCallingGetter_thenPrintingProperty () {assertThat (pojo.getField ()) .isNotBlank () .isEqualTo (sample); }}

Dessverre vil denne testen mislykkes fordi XML-konfigurasjonsfilen kan som standard ikke løse plassholdere. Vi kan imidlertid løse dette ved å inkludere @EnableAutoConfiguration kommentar:

@Configuration @EnableAutoConfiguration @ ImportResource ("classpath: beans.xml") offentlig klasse SpringBootXmlApplication implementerer CommandLineRunner {// ...}

Denne kommentaren muliggjør automatisk konfigurering og forsøk på å konfigurere bønner.

4. Anbefalt tilnærming

Vi kan fortsette å bruke XML-konfigurasjonsfiler. Men vi kan også vurdere å flytte all konfigurasjon til JavaConfig av et par grunner. Først, å konfigurere bønnene i Java er typesikkert, så vi fanger typefeil på kompileringstidspunktet. Også, XML-konfigurasjon kan bli ganske stor, noe som gjør det vanskelig å vedlikeholde.

5. Konklusjon

I denne artikkelen så vi hvordan vi bruker XML-konfigurasjonsfiler til å definere våre bønner i en Spring Boot-applikasjon. Som alltid er kildekoden til eksemplet vi brukte tilgjengelig på GitHub.


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