Kacang Definisi XML di Spring Boot

1. Pengenalan

Sebelum Spring 3.0, XML adalah satu-satunya cara untuk menentukan dan mengkonfigurasi kacang. Spring 3.0 memperkenalkan JavaConfig , memungkinkan kami untuk mengkonfigurasi kacang menggunakan kelas Java. Walau bagaimanapun, fail konfigurasi XML masih digunakan hingga kini.

Dalam tutorial ini, kita akan membincangkan cara mengintegrasikan konfigurasi XML ke Spring Boot .

2. Anotasi @ImportResource

The @ImportResource anotasi membolehkan kita untuk mengimport satu atau lebih sumber yang mengandungi definisi kacang.

Katakan kita mempunyai fail kacang.xml dengan definisi kacang:

Untuk menggunakannya dalam aplikasi Spring Boot, kita dapat menggunakan anotasi @ImportResource , memberitahu di mana untuk mencari fail konfigurasi:

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

Dalam kes ini, contoh Pojo akan disuntik dengan kacang yang ditentukan dalam kacang.xml .

3. Mengakses Properties dalam Konfigurasi XML

Bagaimana dengan menggunakan sifat dalam fail konfigurasi XML? Katakanlah kita mahu menggunakan harta yang dinyatakan dalam fail application.properties kami :

sample=string loaded from properties!

Mari kita kemas kini definisi Pojo , dalam beans.xml , untuk memasukkan sifat sampel :

Seterusnya, mari kita sahkan sama ada harta itu disertakan dengan betul:

@RunWith(SpringRunner.class) @SpringBootTest(classes = SpringBootXmlApplication.class) public class SpringBootXmlApplicationIntegrationTest { @Autowired private Pojo pojo; @Value("${sample}") private String sample; @Test public void whenCallingGetter_thenPrintingProperty() { assertThat(pojo.getField()) .isNotBlank() .isEqualTo(sample); } }

Sayangnya, ujian ini akan gagal kerana, secara lalai, fail konfigurasi XML tidak dapat menyelesaikan tempat letak . Walau bagaimanapun, kami dapat menyelesaikannya dengan memasukkan anotasi @EnableAutoConfiguration :

@Configuration @EnableAutoConfiguration @ImportResource("classpath:beans.xml") public class SpringBootXmlApplication implements CommandLineRunner { // ... }

Anotasi ini membolehkan konfigurasi automatik dan cuba mengkonfigurasi kacang.

4. Pendekatan yang Disyorkan

Kita boleh terus menggunakan fail konfigurasi XML. Tetapi kami juga dapat mempertimbangkan untuk memindahkan semua konfigurasi ke JavaConfig untuk beberapa alasan. Pertama, mengkonfigurasi kacang di Java selamat dari jenis , jadi kami akan menangkap kesalahan jenis pada waktu kompilasi. Juga, konfigurasi XML dapat berkembang dengan cukup besar , sehingga sukar untuk dijaga.

5. Kesimpulan

Dalam artikel ini, kami melihat bagaimana menggunakan fail konfigurasi XML untuk menentukan kacang kami dalam aplikasi Spring Boot. Seperti biasa, kod sumber contoh yang kami gunakan tersedia di GitHub.