SpringBoot

SpringBoot各个注解作用

  1. @ConditionalOnMissingBean

    1. 它是修饰bean的一个注解,主要实现的是,当你的bean被注册之后,如果而注册相同类型的bean,就不会成功,它会保证你的bean只有一个,即你的实例只有一个,当你注册多个相同的bean时,会出现异常,以此来告诉人员。
  2. @EnableAutoCfiguration

    1. 开启自动配置
  3. @RestController

    1. 此注解就是@Controller和@ResponseBoby的集合,使用在controller层的,意思就是告诉控制层里面的方法都是以json的格式进行输出。
  4. @Conditional

    1. 注解是用来匹配只有满足所有指定条件才能将Bean注册到Spring上下文中
  5. @Repository:

    1. 该注解用于标注数据访问组件,DAO组件的。

  6. @ConditionalOnClass

    1. 表示指定的类存在才会解析处理本配置
  7. image.png

自动装配原理

  1. 通过 @EnableAutoConfiguration 注解解析此注解上的 Import(AutoConfigurationImportSelector.class) 加载spring.factories
  2. 通过 @Conditional等注解配合筛选出符合条件的自动配置类
  3. 通过Bean工厂实例化并处理配置

配置文件加载原理,加载顺序是怎样的

  1. 是通事件监听的方式加载配置文件的
  2. 加载顺: 
    1. classpath:/
    2. classpath:/config/,
    3. file:./
    4. file:./config/*/
    5. file:./config/"