前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >spring.factories文件作用详解,@SpringBootApplication启动过程与其关联

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

原创
作者头像
javaNice
发布2023-11-20 17:14:12
5660
发布2023-11-20 17:14:12
举报
文章被收录于专栏:javanicejavanice

TOC

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

image-20230626113624018
image-20230626113624018

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

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

image-20230626114042326
image-20230626114042326

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

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

image-20230626114207036
image-20230626114207036

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

image-20230626114328863
image-20230626114328863

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

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

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

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

代码语言:java
复制
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
  com.baomidou.mybatisplus.autoconfigure.MybatisPlusLanguageDriverAutoConfiguration,\
  com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration

🖊️最后总结

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

搞笑点赞
搞笑点赞

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 🔊spring.factories文件作用详解,@SpringBootApplication启动过程与其关联
    • @SpringBootApplication启动过程与spring.factories关联
      • 🖊️最后总结
      相关产品与服务
      容器服务
      腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档