Bootstrap Aplikasi Web dengan Spring 5

REST Top

Saya baru saja mengumumkan kursus Learn Spring baru , yang berfokus pada dasar-dasar Spring 5 dan Spring Boot 2:

>> LIHAT KURSUSnya

1. Ikhtisar

Tutorial ini menggambarkan cara Bootstrap Aplikasi Web dengan Spring.

Kami akan melihat solusi Spring Boot untuk mem-bootstrap aplikasi dan juga melihat pendekatan non-Spring Boot.

Kami terutama akan menggunakan konfigurasi Java, tetapi juga melihat konfigurasi XML yang setara.

2. Bootstrap Menggunakan Spring Boot

2.1. Ketergantungan Maven

Pertama, kita membutuhkan dependensi spring-boot-starter-web:

 org.springframework.boot spring-boot-starter-web 2.1.1.RELEASE 

Starter ini meliputi:

  • spring-web dan modul spring-webmvc yang kami butuhkan untuk aplikasi web Spring kami
  • starter Tomcat sehingga kita dapat menjalankan aplikasi web kita secara langsung tanpa menginstal server apa pun secara eksplisit

2.2. Membuat Aplikasi Spring Boot

Cara paling mudah untuk mulai menggunakan Spring Boot adalah dengan membuat kelas utama dan menganotasinya dengan @SpringBootApplication :

@SpringBootApplication public class SpringBootRestApplication { public static void main(String[] args) { SpringApplication.run(SpringBootRestApplication.class, args); } }

Anotasi tunggal ini setara dengan menggunakan @Configuration , @EnableAutoConfiguration , dan @ComponentScan.

Secara default, ini akan memindai semua komponen dalam paket yang sama atau di bawahnya.

Selanjutnya, untuk konfigurasi Spring beans berbasis Java, kita perlu membuat kelas config dan menganotasinya dengan anotasi @Configuration :

@Configuration public class WebConfig { }

Anotasi ini adalah artefak utama yang digunakan oleh konfigurasi Spring berbasis Java; itu sendiri di-meta-anotasi dengan @Component , yang membuat kelas yang dianotasi menjadi kacang standar dan dengan demikian, juga kandidat untuk pemindaian komponen.

Tujuan utama class @Configuration adalah menjadi sumber definisi kacang untuk Spring IoC Container. Untuk penjelasan lebih rinci, lihat dokumen resmi.

Mari kita lihat juga solusi menggunakan pustaka inti spring-webmvc .

3. Bootstrap Menggunakan spring-webmvc

3.1. Dependensi Maven

Pertama, kita membutuhkan dependensi spring-webmvc:

 org.springframework spring-webmvc 5.0.0.RELEASE 

3.2. Konfigurasi Web berbasis Java

Selanjutnya, kami akan menambahkan kelas konfigurasi yang memiliki anotasi @Configuration :

@Configuration @EnableWebMvc @ComponentScan(basePackages = "com.baeldung.controller") public class WebConfig { }

Di sini, tidak seperti solusi Spring Boot, kita harus secara eksplisit mendefinisikan @EnableWebMvc untuk menyiapkan Konfigurasi Spring MVC default dan @ComponentScan untuk menentukan paket yang akan dipindai komponennya.

The @EnableWebMvc penjelasan menyediakan konfigurasi Spring Web MVC seperti menyiapkan servlet operator, memungkinkan @Controller dan @RequestMapping penjelasan dan menyiapkan default lainnya.

@ComponentScan mengkonfigurasi petunjuk pemindaian komponen, menentukan paket yang akan dipindai.

3.3. Kelas Penginisialisasi

Selanjutnya, kita perlu menambahkan kelas yang mengimplementasikan antarmuka WebApplicationInitializer :

public class AppInitializer implements WebApplicationInitializer { @Override public void onStartup(ServletContext container) throws ServletException { AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext(); context.scan("com.baeldung"); container.addListener(new ContextLoaderListener(context)); ServletRegistration.Dynamic dispatcher = container.addServlet("mvc", new DispatcherServlet(context)); dispatcher.setLoadOnStartup(1); dispatcher.addMapping("/"); } }

Di sini, kami membuat konteks Spring menggunakan kelas AnnotationConfigWebApplicationContext , yang berarti kami hanya menggunakan konfigurasi berbasis anotasi. Kemudian, kami menentukan paket yang akan dipindai untuk komponen dan kelas konfigurasi.

Terakhir, kami mendefinisikan titik masuk untuk aplikasi web - DispatcherServlet.

Kelas ini sepenuhnya dapat menggantikan file web.xml dari <3.0 versi Servlet.

4. Konfigurasi XML

Mari kita juga melihat sekilas konfigurasi web XML yang setara:

Kita bisa mengganti file XML ini dengan kelas WebConfig di atas.

Untuk memulai aplikasi, kita dapat menggunakan kelas Penginisialisasi yang memuat konfigurasi XML atau file web.xml. Untuk detail lebih lanjut tentang kedua pendekatan ini, lihat artikel kami sebelumnya.

5. Kesimpulan

Pada artikel ini, kami melihat dua solusi populer untuk melakukan bootstrap pada aplikasi web Spring, satu menggunakan web starter Spring Boot dan lainnya menggunakan pustaka inti spring-webmvc.

Dalam artikel berikutnya di REST with Spring, saya membahas pengaturan MVC dalam proyek, konfigurasi kode status HTTP, marshalling muatan, dan negosiasi konten.

Seperti biasa, kode yang disajikan dalam artikel ini tersedia di Github. Ini adalah proyek berbasis Maven, jadi semestinya mudah untuk mengimpor dan menjalankan apa adanya.

REST bawah

Saya baru saja mengumumkan kursus Learn Spring baru , yang berfokus pada dasar-dasar Spring 5 dan Spring Boot 2:

>> LIHAT KURSUSnya