Использование аннотации @SpringBootApplication
Многим разработчикам Spring Boot нравится, когда их приложения используют автоконфигурацию, сканирование компонентов и могут определять дополнительную конфигурацию в своем "application class". Одну аннотацию @SpringBootApplication можно использовать для включения этих трех функций, а именно:
- @EnableAutoConfiguration: включить механизм автоконфигурации Spring Boot
- @ComponentScan: включить сканирование @Component для пакета, в котором находится приложение
- @Configuration: позволяет регистрировать дополнительные компоненты (beans) в контексте или импортировать дополнительные классы конфигурации
package com.example.myapplication;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
// то же самое что и
// @Configuration @EnableAutoConfiguration @ComponentScan
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
@SpringBootApplication также предоставляет псевдонимы для настройки атрибутов @EnableAutoConfiguration и @ComponentScan.
Ни одна из этих функций не является обязательной, и вы можете заменить эту единственную аннотацию любой из функций, которые она включает. Например, вы можете не захотеть использовать сканирование компонентов или сканирование свойств конфигурации в вашем приложении:
package com.example.myapplication;
import org.springframework.boot.SpringApplication;
import org.springframework.context.annotation.ComponentScan
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
@Configuration(proxyBeanMethods = false)
@EnableAutoConfiguration
@Import({ MyConfig.class, MyAnotherConfig.class })
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
В этом примере Application аналогично любому другому приложению Spring Boot, за исключением того, что @Component-аннотированные классы и @ConfigurationProperties-аннотированные классы не обнаруживаются автоматически, а определяемые пользователем компоненты (beans) импортируются явно (@Import).
Читайте также:
- Классы конфигурации Spring Boot
- Автоконфигурация в Spring Boot
- Spring Beans и внедрение зависимостей
Комментарии
Отправить комментарий