一 SpringBoot - SpringBoot 初识( 二 )

7、SpringBootApplication 注解详情此注解 , 就是SpringBoot应用的核心启动类;

一 SpringBoot - SpringBoot 初识

文章插图
7.1 @SpringBootConfiguration 注解标注的类就是SpringBoot的核心配置类 , 是SpringBoot的专属注解,实际上跟 @Configuration 注解一致(等同于以前的核心配置文件),在SpringBoot应用启动时,会自动加载;
一 SpringBoot - SpringBoot 初识

文章插图
@SpringBootConfiguration  实际上跟 @Configuration 注解一致;
一 SpringBoot - SpringBoot 初识

文章插图
7.2 @EnableAutoConfiguration 注解开启自动配置注解,以前都是手动创建xml核心配置文件,文件中增加核心配置,现在都交给SpringBoot框架自动配置;
一 SpringBoot - SpringBoot 初识

文章插图
7.2.1 子注解 1 @AutoConfigurationPackage 子注解
  • 开启自动配置包,实际上就是开启spring的自动扫描功能;

一 SpringBoot - SpringBoot 初识

文章插图
7.2.1.1 子注解 1 的子注解 @Import(AutoConfigurationPackages.Registrar.class)@Import(AutoConfigurationPackages.Registrar.class)将springBoot核心启动类所在的父包及子包中所有的组件 , 自动添加到容器中
一 SpringBoot - SpringBoot 初识

文章插图
  • 找到 springBoot核心启动类所在的父包  加载的位置
1、点击进入 @Import(AutoConfigurationPackages.Registrar.class)
一 SpringBoot - SpringBoot 初识

文章插图
2、点击 Evalute Expression
一 SpringBoot - SpringBoot 初识

文章插图
3、执行Evalute【一 SpringBoot - SpringBoot 初识】可以看出是将springBoot核心启动类所在的父包及子包中所有的组件,自动添加到容器中
一 SpringBoot - SpringBoot 初识

文章插图

一 SpringBoot - SpringBoot 初识

文章插图
7.2.2 子注解 2 @Import({EnableAutoConfigurationImportSelector.class})
  • 开启自动配置将springboot框架下MET-INF/spring/spring.factories资源文件中,属性值 org.springframework.boot.autoconfigure.EnableAutoConfiguration 指定的96个自动配置类,导入到容器中,实现自动配置,省去开发人员手动添加组件到容器中,减少开发的工作量,重心都放在核心业务开发中 , 不是配置上;

一 SpringBoot - SpringBoot 初识

文章插图
  • 96个自动配置类
1、进入 @Import(EnableAutoConfigurationImportSelector.class)
一 SpringBoot - SpringBoot 初识

文章插图
2、再进入 AutoConfigurationImportSelector
一 SpringBoot - SpringBoot 初识

文章插图
3、跳到 getCandidateConfigurations  方法可以看到96个configuration 应该在 META-INF/spring.factories中
一 SpringBoot - SpringBoot 初识

文章插图
4、我找到 META-INF/spring.factories
一 SpringBoot - SpringBoot 初识

文章插图
5、在 spring.factories 找到 96个 configuration
一 SpringBoot - SpringBoot 初识

文章插图
7.2.3 子注解 3 @ComponentScan 注解
  • 指定组件扫描 , 相当于spring核心配置xml文件中<context:component-scan></context:component-scan> 作用;
  • 可以指定一个自定义的包路径(或者多个),执行组件扫描;
  • 注意:如果核心启动类上,增加此注解,会导致默认的自动配置包失败,以指定的为准 , 实际应用时,要避免此种情况出现;

一 SpringBoot - SpringBoot 初识

文章插图
8、banner在 resources 下 创建文件 banner.txt ,网上复制图案;
banner图网址:https://www.bootschool.net/ascii

推荐阅读