Spring.Factories 要被弃用了,快来Get新写法
2023-02-25 18:04:48 时间
如果你是Spring Boot用户的话,一定有这样的开发体验,当我们要引入某个功能的时候,只需要在maven或gradle的配置中直接引入对应的Starter,马上就可以使用了,而不需要像传统Spring应用那样写个xml或java配置类来初始化各种Bean。
如果你有探索过这些Starter的原理,那你一定知道Spring Boot并没有消灭这些原本你要配置的Bean,而是将这些Bean做成了一些默认的配置类,同时利用/META-INF/spring.factories这个文件来指定要加载的默认配置。
这样当Spring Boot应用启动的时候,就会根据引入的各种Starter中的/META-INF/spring.factories文件所指定的配置类去加载Bean。
而这次刚发布的Spring Boot 2.7中,有一个不推荐使用的内容就是关于这个/META-INF/spring.factories文件的,所以对于有自定义Starter的开发者来说,有时间要抓紧把这一变化改起来了,因为在Spring Boot 3开始将移除对/META-INF/spring.factories的支持。
那么具体怎么改呢?下面以之前我们编写的一个swagger的starter为例,它的/META-INF/spring.factories内容是这样的:
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.spring4all.swagger.SwaggerAutoConfiguration
我们只需要创建一个新的文件:
/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports,内容的话只需要直接放配置类就可以了,比如这样:
com.spring4all.swagger.SwaggerAutoConfiguration
注意:这里多了一级spring目录。
相关文章
- Java拾遗之Java基础-流
- Java拾遗系列之Java基础-异常
- Java 如何通过 Socket 查询 IP ?
- 2023.1最新IntelliJ IDEA激活码、Java激活码(持续更新中)
- java服装商城购物商场项目源码
- java基于ssm的个人博客系统个人博客网站个人博客项目源码
- java基于ssm的图书管理系统图书借阅管理网站图书管理网站源码
- java书店带商家商城书店多商家书店系统源码
- Java 中经常被提到的 SPI 到底是什么?
- 面试官让我设计一个基于分布式锁的库存超卖方案,并发量很高那种
- 几百个数据,Promise.all 没做控制并发?那你心可真大啊!
- 讲透JVM类加载机制,向高手进阶
- JVM 的栈上分配、TLAB、PLAB 有啥区别?
- JVM学习- - -虚拟机栈详解
- Android 12 蓝牙适配 Java版
- 从0学Java之While循环
- 从0学Java之关系运算以及判断
- Java 如何验证文件名的有效性?
- Java保证线程安全的方式有哪些?
- 如何在Java中加密和解密zip文件?