Pengantar Cepat SpringBootServletInitializer

1. Ikhtisar

Dalam tutorial ini, kita akan membahas pengenalan singkat dari SpringBootServletInitializer .

Ini adalah ekstensi dari WebApplicationInitializer yang menjalankan SpringApplication dari arsip WAR tradisional yang digunakan di penampung web. Kelas ini mengikat kacang Servlet , Filter dan ServletContextInitializer dari konteks aplikasi ke server.

Memperluas kelas SpringBootServletInitializer juga memungkinkan kita untuk mengkonfigurasi aplikasi kita ketika dijalankan oleh kontainer servlet, dengan mengganti metode configure () .

2. SpringBootServletInitializer

Untuk lebih praktis, kami akan menunjukkan contoh kelas utama yang memperluas kelas Penginisialisasi .

Kelas @SpringBootApplication kami yang disebut WarInitializerApplication memperluas SpringBootServletInitializer dan mengganti metode configure () . Metode itu menggunakan SpringApplicationBuilder untuk mendaftarkan kelas kita sebagai kelas konfigurasi aplikasi:

@SpringBootApplication public class WarInitializerApplication extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure( SpringApplicationBuilder builder) { return builder.sources(WarInitializerApplication.class); } public static void main(String[] args) { SpringApplication sa = new SpringApplication( WarInitializerApplication.class); sa.run(args); } @RestController public static class WarInitializerController { @GetMapping("/") public String handler() { // ... } } } 

Sekarang, jika kita mengemas aplikasi kita sebagai WAR, kita akan dapat menerapkannya pada wadah web manapun dengan cara tradisional, yang juga akan mengeksekusi logika yang kita tambahkan dalam metode configure () .

Jika kita ingin memaketkannya sebagai file JAR, maka kita perlu menambahkan logika yang sama ke metode main () sehingga container yang disematkan dapat mengambilnya juga.

3. Kesimpulan

Pada artikel ini, kami memperkenalkan SpringBootServletInitializer dan mendemonstrasikan bagaimana kami dapat menggunakannya untuk menjalankan aplikasi Spring Boot dari arsip WAR klasik.

Kode sumber lengkap untuk contoh tersedia di GitHub. Ini adalah proyek berbasis Maven, sehingga dapat diimpor dan digunakan sebagaimana adanya.