AutoConfiguration加载元数据和自动配置组件( 三 )
简单描述以上加载的过程就是: SpringFactoriesLoader 加载 器加载指定 ClassL oader 下面的所有 META-INF/spring.factories 文件 , 并将文件解析内容存于 Map>内 。 然后 , 通过 loadFactoryNames 传递过来的 class 的名称从 Map 中获得该类的配置列表 。
结 合 下 面 spring.factories 文 件 的 内 容 格 式,我 们 可 以 更 加 清 晰 地 了 解Map>中都存储了什么 。
# Auto Configureorg. springframework . boot . autoconfigure . EnableAutoConf iguration=\org. springframework . boot . autoconfigure . admin. Spr ingApplicat ionAdminJmxAutoConfig :uration, \org. springframework . boot . autoconfigure . aop . AopAutoConfiguration, \org . springframework . boot . autoconfigure . amqp . RabbitAutoConfiguration, \org. springframework . boot. autoconfigure . batch . BatchAutoConfiguration,\org. springfr amework . boot . autoconfigure . cache . CacheAutoConfiguration, \org. springframework . boot . autoconfigure . cassandra . CassandraAutoConfiguration,\ 。。。
以上代码仅以 EnableAutoConfiguration 配置的部分内容为例 , spring.factories 文件的基本格式为自动配置类的全限定名=值 , 与 2.3.5 节中介绍的元数据的格式很相似 , 只不过缺少了“ , 注解名称”部分 , 如果包含多个值 , 用英文逗号分隔 。
【AutoConfiguration加载元数据和自动配置组件】我们继续以 EnableAutoConfiguration 的配置为例 Map>内存储的对应数据就是key值为\/nliin/古org.springframework.boot.autoconfigure .EnableAutoConfiguration , Value 值为其等号后面以分号分割的各种 AutoConfiguration 类 。
当然 , spring.factories 文件内还有其他的配置 , 比如用于监听的 Listeners 和用于过滤的Filters 等 。 很显然 , 在加载自动配置组件时 , 此方法只用到了 EnableAutoConfiguration 对应的配置 。
因为程序默认加载的是 ClassLoader 下面的所有 META-INF/spring.factories文件中的配置 , 所以难免在不同的 jar 包中出现重复的配置 。 我们可以在源代码中使用 Set 集合数据不可重复的特性进行去重操作 。
protected finalList removeDuplicates(List list) {return new ArrayList<>(new LinkedHashSet<>(list));}
本文给大家讲解的内容是AutoConfiguration加载元数据配置和加载自动配置组件
- 下篇文章给大家讲解的是AutoConfiguration 排除指定组件和过滤自动配置组件;
- 觉得文章不错的朋友可以转发此文关注小编;
- 感谢大家的支持!
- 「技术」这样的思路,让控制器中按键处理数据的方法变得简单了
- IPsecVPN(数据通信)
- 一线大牛带你深入解析AutoConfiguration源码
- 学大数据是否有前途 如何系统掌握大数据技术
- 分析|用数据量化方法透视不确定性世界
- 微信官方发布国庆假期消费大数据,来瞧瞧你的钱都花到哪了
- 数据|女生从事数据分析岗位会面临哪些压力
- 海云数据:用AI让不可能变成可能
- 面向销售自动化的基于数据扩增和真实图像合成的鲁棒多目标检测
- 9款游戏13块SSD:测试固态硬盘对游戏加载速度影响有多大?