เมื่อเราสร้างแอปพลิเคชัน Spring boot เราจะใส่คำอธิบายประกอบด้วย@SpringBootApplication
คำอธิบายประกอบ คำอธิบายประกอบนี้ 'รวม' คำอธิบายประกอบที่จำเป็นอื่น ๆ อีกมากมายเพื่อให้แอปพลิเคชันทำงานได้ คำอธิบายประกอบอย่างหนึ่งคือ@ComponentScan
คำอธิบายประกอบ คำอธิบายประกอบนี้บอกให้ Spring มองหาส่วนประกอบของ Spring และกำหนดค่าให้แอปพลิเคชันทำงาน
คลาสแอปพลิเคชันของคุณต้องอยู่บนสุดของลำดับชั้นแพ็กเกจของคุณเพื่อให้ Spring สามารถสแกนแพ็กเกจย่อยและค้นหาส่วนประกอบที่จำเป็นอื่น ๆ
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);
}
}
ด้านล่างข้อมูลโค้ดทำงานได้เนื่องจากแพ็คเกจคอนโทรลเลอร์อยู่ภายใต้com.test.spring.boot
แพ็คเกจ
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!";
}
}
ข้อมูลโค้ดด้านล่าง ไม่ทำงานเนื่องจากแพ็คเกจคอนโทรลเลอร์ไม่อยู่ในcom.test.spring.boot
แพ็คเกจ
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!";
}
}
จากเอกสาร Spring Boot:
นักพัฒนาฤดูใบไม้ผลิ Boot หลายคนมักจะมีระดับหลักของพวกเขากำกับ@Configuration
, และ@EnableAutoConfiguration
@ComponentScan
เนื่องจากคำอธิบายประกอบเหล่านี้มักใช้ร่วมกัน (โดยเฉพาะอย่างยิ่งหากคุณปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุดข้างต้น) Spring Boot จึงเป็น@SpringBootApplication
ทางเลือกที่สะดวก
@SpringBootApplication
คำอธิบายประกอบเทียบเท่ากับการใช้
@Configuration
, @EnableAutoConfiguration
และ@ComponentScan
มีคุณลักษณะที่เริ่มต้นของพวกเขา