Spring Boot - Giới thiệu
Spring Boot là một khuôn khổ dựa trên Java mã nguồn mở được sử dụng để tạo một Dịch vụ vi mô. Nó được phát triển bởi Pivotal Team và được sử dụng để xây dựng các ứng dụng mùa xuân độc lập và sẵn sàng sản xuất. Chương này sẽ giới thiệu cho bạn về Spring Boot và giúp bạn làm quen với các khái niệm cơ bản của nó.
Dịch vụ vi mô là gì?
Dịch vụ vi mô là một kiến trúc cho phép các nhà phát triển phát triển và triển khai các dịch vụ một cách độc lập. Mỗi dịch vụ đang chạy có quy trình riêng và điều này đạt được mô hình nhẹ để hỗ trợ các ứng dụng kinh doanh.
Ưu điểm
Các dịch vụ vi mô mang lại những lợi thế sau cho các nhà phát triển của nó:
- Triển khai dễ dàng
- Khả năng mở rộng đơn giản
- Tương thích với Container
- Cấu hình tối thiểu
- Thời gian sản xuất ít hơn
Spring Boot là gì?
Spring Boot cung cấp một nền tảng tốt cho các nhà phát triển Java để phát triển một ứng dụng mùa xuân độc lập và cấp sản xuất mà bạn có thể just run. Bạn có thể bắt đầu với các cấu hình tối thiểu mà không cần thiết lập toàn bộ cấu hình Spring.
Ưu điểm
Spring Boot cung cấp những lợi thế sau cho các nhà phát triển của nó:
- Dễ hiểu và phát triển các ứng dụng mùa xuân
- Tăng năng suất
- Giảm thời gian phát triển
Bàn thắng
Spring Boot được thiết kế với các mục tiêu sau:
- Để tránh cấu hình XML phức tạp trong Spring
- Để phát triển các ứng dụng Spring sẵn sàng sản xuất theo cách dễ dàng hơn
- Để giảm thời gian phát triển và chạy ứng dụng một cách độc lập
- Cung cấp một cách dễ dàng hơn để bắt đầu với ứng dụng
Tại sao nên sử dụng Spring Boot?
Bạn có thể chọn Spring Boot vì các tính năng và lợi ích mà nó mang lại như được đưa ra ở đây -
Nó cung cấp một cách linh hoạt để định cấu hình Java Beans, cấu hình XML và Giao dịch cơ sở dữ liệu.
Nó cung cấp một xử lý hàng loạt mạnh mẽ và quản lý các điểm cuối REST.
Trong Spring Boot, mọi thứ đều được cấu hình tự động; không cần cấu hình thủ công.
Nó cung cấp ứng dụng mùa xuân dựa trên chú thích
Dễ dàng quản lý sự phụ thuộc
Nó bao gồm Bộ chứa Servlet được nhúng
Làm thế nào nó hoạt động?
Spring Boot tự động cấu hình ứng dụng của bạn dựa trên các phụ thuộc bạn đã thêm vào dự án bằng cách sử dụng @EnableAutoConfigurationchú thích. Ví dụ: nếu cơ sở dữ liệu MySQL nằm trên classpath của bạn, nhưng bạn chưa định cấu hình bất kỳ kết nối cơ sở dữ liệu nào, thì Spring Boot sẽ tự động cấu hình cơ sở dữ liệu trong bộ nhớ.
Điểm vào của ứng dụng khởi động mùa xuân là lớp chứa @SpringBootApplication chú thích và phương thức chính.
Spring Boot tự động quét tất cả các thành phần có trong dự án bằng cách sử dụng @ComponentScan chú thích.
Khởi động Spring Boot
Xử lý quản lý phụ thuộc là một nhiệm vụ khó khăn đối với các dự án lớn. Spring Boot giải quyết vấn đề này bằng cách cung cấp một tập hợp các phụ thuộc để các nhà phát triển thuận tiện.
Ví dụ: nếu bạn muốn sử dụng Spring và JPA để truy cập cơ sở dữ liệu, chỉ cần bạn bao gồm spring-boot-starter-data-jpa phụ thuộc vào dự án của bạn.
Lưu ý rằng tất cả các trình khởi động Spring Boot đều tuân theo cùng một mẫu đặt tên spring-boot-starter- *, trong đó * chỉ ra rằng đó là một loại ứng dụng.
Ví dụ
Hãy xem phần khởi động Spring Boot sau được giải thích bên dưới để hiểu rõ hơn -
Spring Boot Starter Actuator dependencyđược sử dụng để theo dõi và quản lý ứng dụng của bạn. Mã của nó được hiển thị bên dưới -
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
Spring Boot Starter Security dependencyđược sử dụng cho Spring Security. Mã của nó được hiển thị bên dưới -
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
Spring Boot Starter web dependencyđược sử dụng để viết Điểm cuối nghỉ. Mã của nó được hiển thị bên dưới -
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
Spring Boot Starter Thyme Leaf dependencyđược sử dụng để tạo một ứng dụng web. Mã của nó được hiển thị bên dưới -
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
Spring Boot Starter Test dependencyđược sử dụng để viết các trường hợp kiểm thử. Mã của nó được hiển thị bên dưới -
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
Cấu hình tự động
Spring Boot Auto Configuration tự động cấu hình ứng dụng Spring của bạn dựa trên các phụ thuộc JAR mà bạn đã thêm vào trong dự án. Ví dụ: nếu cơ sở dữ liệu MySQL nằm trên đường dẫn lớp của bạn, nhưng bạn chưa định cấu hình bất kỳ kết nối cơ sở dữ liệu nào, thì Spring Boot sẽ tự động cấu hình cơ sở dữ liệu trong bộ nhớ.
Với mục đích này, bạn cần thêm @EnableAutoConfiguration chú thích hoặc @SpringBootApplicationchú thích cho tệp lớp chính của bạn. Sau đó, ứng dụng Spring Boot của bạn sẽ được tự động cấu hình.
Hãy quan sát đoạn mã sau để hiểu rõ hơn:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
@EnableAutoConfiguration
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
Ứng dụng khởi động mùa xuân
Điểm vào của Ứng dụng khởi động mùa xuân là lớp chứa @SpringBootApplicationchú thích. Lớp này phải có phương thức chính để chạy ứng dụng Spring Boot.@SpringBootApplication chú thích bao gồm Tự động cấu hình, Quét thành phần và Cấu hình khởi động mùa xuân.
Nếu bạn đã thêm @SpringBootApplication chú thích cho lớp, bạn không cần thêm @EnableAutoConfiguration, @ComponentScan và @SpringBootConfigurationchú thích. Các@SpringBootApplication chú thích bao gồm tất cả các chú thích khác.
Hãy quan sát đoạn mã sau để hiểu rõ hơn:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
Quét thành phần
Ứng dụng Spring Boot quét tất cả các bean và khai báo gói khi ứng dụng khởi chạy. Bạn cần thêm@ComponentScan chú thích cho tệp lớp của bạn để quét các thành phần được thêm vào dự án của bạn.
Hãy quan sát đoạn mã sau để hiểu rõ hơn:
import org.springframework.boot.SpringApplication;
import org.springframework.context.annotation.ComponentScan;
@ComponentScan
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}