Nói về cách hoạt động của Spring Boot

Trong những bài viết trước, chúng ta đã cùng nhau tìm hiểu tổng quan về Spring Boot và làm thế nào để tạo một Spring Boot project bằng CLI, bằng Spring Initialzr Web và bằng Spring Tool Suite. Có những bạn chưa làm việc nhiều về Spring Boot sẽ thắc mắc về cách hoạt động của nó. Do đó, trong bài viết này mình sẽ dành chút thời gian để nói về cách hoạt động của Spring Boot nhé các bạn. Bạn nào đã biết rồi thì hãy coi như review lại xem mình hiểu có đúng không nhé!

OK, đầu tiên mình sẽ tạo mới một Spring Boot project với Web Starter và một class HelloController như sau:

Nói về cách hoạt động của Spring Boot

Nội dung của class HelloController:

Bây giờ, nếu các bạn chạy project này lên và truy cập vào đường dẫn http://localhost:8080/, các bạn sẽ thấy kết quả như sau:

Nói về cách hoạt động của Spring BootRõ ràng như các bạn thấy, mặc dù chúng ta không khai báo các tập tin cấu hình cần thiết như web.xml, annotation @Configuration hay bất kỳ bean nào trong Spring container, nhưng ứng dụng của chúng ta vẫn chạy bình thường và hiển thị nội dung mà chúng ta muốn.

Để làm được điều này, Spring Boot phải dựa vào annotation @SpringBootApplication đã được khai báo trong class SpringBootExampleApplication:

Chính annotation này đã giúp cho Spring Boot có thể tự động quét tất cả các cấu hình và các bean có trong ứng dụng của chúng ta.

Nội dung của annotation này như sau:

Annotation @SpringBootApplication là sự kết hợp giữa 3 annotation khác của Spring bao gồm: @SpringBootConfiguration, @ComponentScan và @EnableAutoConfiguration trong đó annotation @EnableAutoConfiguration là quan trọng nhất.

Với @EnableAutoConfiguration annotation, Spring Boot sẽ tự động cấu hình cho ứng dụng của chúng ta dựa vào classpath, các annotations và các thông tin cấu hình mà chúng ta định nghĩa.

Tất cả các annotation này sẽ giúp cho Spring Boot có thể tự động cấu hình cho ứng dụng của chúng ta một cách phù hợp và chúng ta không cần phải quan tâm nhiều đến việc cấu hình.

Trong ví dụ trên của mình, để thực hiện việc cấu hình một cách tự động, đầu tiên Spring Boot sẽ kiểm tra classpath trong project của mình, và bởi vì dependency của mình có spring-boot-starter-web nên Spring Boot sẽ cấu hình ứng dụng của mình là một ứng dụng web.

Thêm nữa, Spring Boot sẽ coi HelloController của mình là một web controller dựa vào annotation @Controller và annotation @RequestMapping.

Mặc định thì Spring Boot sẽ sử dụng Tomcat server để chạy ứng dụng web nên các bạn sẽ thấy có một số dòng log mention về Tomcat server khi các bạn chạy ứng dụng ví dụ này. Các bạn có thể thay đổi Server runtime nếu muốn nhé!

4.7/5 - (13 bình chọn)

Add Comment