Khi chúng tôi tạo một ứng dụng khởi động Spring, chúng tôi chú thích nó bằng @SpringBootApplication
chú thích. Chú thích này 'gói gọn' nhiều chú thích cần thiết khác để ứng dụng hoạt động. Một trong những chú thích như vậy là @ComponentScan
chú thích. Chú thích này yêu cầu Spring tìm kiếm các thành phần Spring và cấu hình ứng dụng để chạy.
Lớp ứng dụng của bạn cần phải đứng đầu hệ thống phân cấp gói để Spring có thể quét các gói con và tìm ra các thành phần cần thiết khác.
package com.test.spring.boot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
Đoạn mã bên dưới hoạt động như gói bộ điều khiển nằm trong com.test.spring.boot
gói
package com.test.spring.boot.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HomeController {
@RequestMapping("/")
public String home(){
return "Hello World!";
}
}
Đoạn mã dưới đây KHÔNG hoạt động vì gói bộ điều khiển KHÔNG nằm trong com.test.spring.boot
gói
package com.test.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HomeController {
@RequestMapping("/")
public String home(){
return "Hello World!";
}
}
Từ tài liệu Spring Boot:
Nhiều nhà phát triển Xuân Boot luôn có lớp học chính của họ chú thích với @Configuration
, @EnableAutoConfiguration
và @ComponentScan
. Vì các chú thích này thường xuyên được sử dụng cùng nhau (đặc biệt nếu bạn làm theo các phương pháp hay nhất ở trên), Spring Boot cung cấp một giải @SpringBootApplication
pháp thay thế thuận tiện .
Các @SpringBootApplication
chú thích là tương đương với việc sử dụng
@Configuration
, @EnableAutoConfiguration
và @ComponentScan
với các thuộc tính mặc định của họ