Коли ми створюємо додаток для завантаження Spring, ми коментуємо його @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 Завантажувального завжди мають свій основний клас з анотацією @Configuration, @EnableAutoConfigurationі @ComponentScan. Оскільки ці анотації настільки часто використовуються разом (особливо якщо ви дотримуєтесь кращих практик вище), Spring Boot є зручною @SpringBootApplicationальтернативою.
@SpringBootApplicationАнотація еквівалентно використання
@Configuration, @EnableAutoConfigurationі @ComponentScanз їх атрибутами по замовчуванням