🔊spring.factories文件作用详解,@SpringBootApplication启动过程与其关联

spring.factories文件作用详解_自动装配

在maven中引用的其他外部包加入容器的过程,需要用到spring.factories

spring.factories是用于springboot在自动装配过程中,通过扫描所有jar包和classpath下的spring.factories文件去加载bean;文件格式为键值对,键是自动配置类的固定名称,值为配置文件全路径

spring.factories文件作用详解_spring_02

@SpringBootApplication启动过程与spring.factories关联

@SpringBootApplication为一个组合注解,通过@EnableAutoConfiguration开启自动装配

spring.factories文件作用详解_spring_03

点进@EnableAutoConfiguration发现其中有一个@Import注解

spring.factories文件作用详解_自动装配_04

里面写了AutoConfigurationImportSelector, springboot项目启动时, 会调用它里面一个方法loadFactoryNames, 这个方法会扫描pom文件中引入的其他starter中的spring.factories文件, 具体的调用路径为:

📝1.selectImports
📜 2.getAutoConfigurationEntry
📘3.getCandidateConfigurations
📖4.SpringFactoriesLoader.loadFactoryNames(this.
getSpringFactoriesLoaderFactoryClass(), this.getBeanClassLoader())
📅5.loadFactoryNames
🍁6.loadSpringFactories

spring.factories文件作用详解_启动过程_05

spring.factories文件作用详解_启动过程_06

spring.factories文件作用详解_启动过程_07

spring.factories文件作用详解_自动装配_08

最后调用loadFactoryNames( )方法,这个方法的会扫描pom文件中引入的其他starter中的spring.factories文件。

spring.factories文件内容示例如下:

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
  com.baomidou.mybatisplus.autoconfigure.MybatisPlusLanguageDriverAutoConfiguration,\
  com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration

🖊️最后总结

🖲要熟练掌握技巧,一定多多坚持练习:骐骥一跃,不能十步;驽马十驾,功在不舍

spring.factories文件作用详解_启动过程_09