转载

从源码看SpringBoot自动装配

从源码看SpringBoot自动装配

SpringBoot从浅至深

  • 搭建springboot环境,非常的简单!不需要如何的配置文件,只需要一个引导类,run起来就完事了!

  • @SpringBootApplication注解

    • 引导类里面只有一个注解 @SpringBootApplication注解 ,从里面看有3个注解比较重要

      从源码看SpringBoot自动装配
    • @SpringBootConfiguration注解

      从源码看SpringBoot自动装配
      • 从源码看其等同@Configuration,即标注该类是Spring的一个配置类
    • @ComponentScan注解

      • 学习spring过后,这个就很简单了。就是注解扫描
      • 扫描当前类下的package, @Controller/@Service/@Component/@Repository 等注解
    • @EnableAutoConfiguration注解

      从源码看SpringBoot自动装配
      • @AutoConfigurationPackage注解: 自动配置包
        • 里面还是依靠的 @Import注解 ,注解扫描的工作。
      • @Import注解: 给IOC容器导入组件
        1. FACTORIES_RESOURCE_LOCATION的值是 META-INF/spring.factories
        2. Spring启动的时候会扫描所有jar路径下的 META-INF/spring.factories ,将其文件包装成Properties对象
        3. 从Properties对象获取到key值为 EnableAutoConfiguration 的数据,然后添加到容器里边。

总结

@SpringBootApplication 等同于下面三个注解:

  • @SpringBootConfiguration
  • @EnableAutoConfiguration
  • @ComponentScan 这3个注解,其中@EnableAutoConfiguration是关键注解,作用是启动自动配置。内部实际使用 @Import注解 ,加载 META-INF/spring.factories 文件的信息,然后筛选出以 EnableAutoConfiguration 为key的数据,加载到IOC容器中,实现自动配置功能!
原文  https://juejin.im/post/5cfdbe6c6fb9a07ece67c3dc
正文到此结束
Loading...