🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
许多Spring Boot开发人员喜欢他们的应用程序使用自动配置,组件扫描,并能够在他们的“应用程序类”上定义额外的配置。注解`@SpringBootApplication`用来开启下面的功能: * `@EnableAutoConfiguration`:开启自动配置机制 * `@ComponentScan`:在类所在位置开启`@Component`扫描 * `@Configuration`:允许在上下文中注册额外的bean或导入其他配置类 `@SpringBootApplication`等效于使用了3个默认配置的注解`@Configuration`, `@EnableAutoConfiguration`, 和 `@ComponentScan`,如下所示: ~~~java package com.example.myapplication; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication // same as @Configuration @EnableAutoConfiguration @ComponentScan public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ~~~ `@SpringBootApplication`还提供别名来自定义`@EnableAutoConfiguration`和`@ComponentScan`的属性。 这些功能都不是必需的,您可以选择其他功能的注解替换此单个注解。 例如,您可能不希望在应用程序中使用组件扫描: ~~~java 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 @EnableAutoConfiguration @Import({ MyConfig.class, MyAnotherConfig.class }) public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ~~~ 在这个例子中`Application`包含了springboot的所有特定除了自动扫描`@Component`组件,然后使用`@Import`明确引入了用户定义的bean.