spring boot 启动注解 SpringBootApplication
SpringBootApplication 注解是指示一个配置类,声明一个或多个bean方法,并触发自动配置和组件扫描。
查看源码
@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 {
@AliasFor(
annotation = EnableAutoConfiguration.class,
attribute = "exclude"
)
Class<?>[] exclude() default {};
@AliasFor(
annotation = EnableAutoConfiguration.class,
attribute = "excludeName"
)
String[] excludeName() default {};
@AliasFor(
annotation = ComponentScan.class,
attribute = "basePackages"
)
String[] scanBasePackages() default {};
@AliasFor(
annotation = ComponentScan.class,
attribute = "basePackageClasses"
)
Class<?>[] scanBasePackageClasses() default {};
}
可以知道他有4个修饰符和类型
Class<?>[]
排除特定的自动配置类,这样它们将永远不会被应用。
String[]
排除特定的自动配置类名称,这样它们将永远不会被应用。
Class<?>[]
对scanbasepackages()指定扫描注释组件包类型安全的替代。
String[]
扫描注释组件的基本包。
简单的说@SpringBootApplication 已经将@Configuration,@EnableAutoConfiguration,@ComponentScan三个注解的功能实现,不用实现这三个功能了。
浙公网安备 33010602011771号