Коли ми створюємо додаток для завантаження 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
з їх атрибутами по замовчуванням