Bootstrap Aplikasi Web dengan Spring 5

REST Teratas

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

>> SEMAK KURSUS

1. Gambaran keseluruhan

Tutorial menggambarkan cara Bootstrap Aplikasi Web dengan Spring.

Kami akan mencari penyelesaian Spring Boot untuk bootstrap aplikasi dan juga melihat pendekatan bukan Spring Boot.

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

2. Bootstrapping Menggunakan Spring Boot

2.1. Ketergantungan Maven

Pertama, kita memerlukan pergantungan spring-boot-starter-web:

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

Permulaan ini merangkumi:

  • spring-web dan spring-webmvc modul yang kami perlukan untuk aplikasi web Spring kami
  • pemula Tomcat supaya kami dapat menjalankan aplikasi web kami secara langsung tanpa memasang pelayan secara eksplisit

2.2. Membuat Aplikasi Spring Boot

Cara paling mudah untuk memulakan menggunakan Spring Boot adalah dengan membuat kelas utama dan memberi anotasinya 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 lalai, ia akan mengimbas semua komponen dalam pakej yang sama atau di bawah.

Seterusnya, untuk konfigurasi berasaskan Java biji Spring, kita perlu mewujudkan kelas config dan menganotasi dengan @Configuration anotasi :

@Configuration public class WebConfig { }

Anotasi ini adalah artifak utama yang digunakan oleh konfigurasi Spring berasaskan Java; ia sendiri diberi meta-anotasi dengan @Component , yang menjadikan kelas anotasi sebagai kacang standard dan dengan itu, juga calon untuk pengimbasan komponen.

Tujuan utama kelas @Configuration adalah menjadi sumber definisi kacang untuk Spring IoC Container. Untuk keterangan yang lebih terperinci, lihat dokumen rasmi.

Mari kita lihat juga penyelesaian menggunakan perpustakaan inti spring-webmvc .

3. Bootstrapping Menggunakan spring-webmvc

3.1. Ketergantungan Maven

Pertama, kita memerlukan pergantungan spring-webmvc:

 org.springframework spring-webmvc 5.0.0.RELEASE 

3.2. Konfigurasi Web berasaskan Java

Seterusnya, kami akan menambahkan kelas konfigurasi yang mempunyai anotasi @Configuration :

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

Di sini, tidak seperti penyelesaian Spring Boot, kita harus menentukan @EnableWebMvc secara eksplisit untuk menetapkan Konfigurasi Spring MVC lalai dan @ComponentScan untuk menentukan pakej untuk mengimbas komponen.

The @EnableWebMvc anotasi menyediakan konfigurasi Spring Web MVC seperti menyediakan servlet penghantar, membolehkan @Controller dan @RequestMapping penjelasan dan menubuhkan mungkir lain.

@ComponentScan mengkonfigurasi arahan pengimbasan komponen, menentukan paket yang akan diimbas.

3.3. Kelas Pemula

Seterusnya, kita perlu menambahkan kelas yang menerapkan antara muka 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 bermaksud kami hanya menggunakan konfigurasi berasaskan anotasi. Kemudian, kami menentukan pakej untuk mengimbas komponen dan kelas konfigurasi.

Akhirnya, kami menentukan titik masuk untuk aplikasi web - DispatcherServlet.

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

4. Konfigurasi XML

Mari kita lihat juga konfigurasi web XML yang setara:

Kita boleh mengganti fail XML ini dengan kelas WebConfig di atas.

Untuk memulakan aplikasi, kita dapat menggunakan kelas Initializer yang memuat konfigurasi XML atau file web.xml. Untuk keterangan lebih lanjut mengenai kedua pendekatan ini, lihat artikel kami sebelumnya.

5. Kesimpulan

Dalam artikel ini, kami melihat dua penyelesaian popular untuk bootstrap aplikasi web Spring, satu menggunakan starter web Spring Boot dan yang lain menggunakan perpustakaan inti spring-webmvc.

Dalam artikel berikutnya mengenai REST dengan Spring, saya membahas penyiapan MVC dalam projek, konfigurasi kod status HTTP, marshalling muatan, dan perundingan kandungan.

Seperti biasa, kod yang disajikan dalam artikel ini terdapat di Github. Ini adalah projek berasaskan Maven, jadi mudah diimport dan dijalankan sebagaimana adanya.

REST bawah

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

>> SEMAK KURSUS