@SpringBootApplication注解

源码


/**
 * 指示一个配置类,该类声明一个或多个@Bean方法,还会触发自动配置和组件扫描。这是一个方便的注释,相当于声明@Configuration、@EnableAutoConfiguration和@ComponentScan
 */
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
		@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
public @interface SpringBootApplication {}

拆解

@SpringBootConfiguration (@Configuration)
指示类声明一个或多个@Bean方法和可能被Spring容器处理,以生成bean定义和在运行时对这些bean的服务请求

@EnableAutoConfiguration
启用Spring应用程序上下文的自动配置,尝试猜测和配置您可能需要的bean。自动配置类通常根据您的类路径和您定义的bean来应用。当使用@SpringBootApplication时,上下文的自动配置将自动启用,因此添加这个注释不会产生额外的效果。

@ComponentScan
为@Configuration类配置组件扫描指令。提供与Spring XML的元素并行的支持。 可以指定basepackagclasses或baseppackages(或其别名值)来定义要扫描的特定包。如果没有定义特定的包,则会从声明此注释的类的包中进行扫描。

总结

  1. 把自己写的需要注入到spring的类注入到容器中
  2. 把依赖的类注入到容器中,如项目依赖的spring-boot-starter-web包依赖的类
posted @ 2021-03-15 21:53  halink  阅读(43)  评论(0)    收藏  举报