Spring.Factories 要被弃用了,快来Get新写法

开发 前端
如果你有探索过这些Starter的原理,那你一定知道Spring Boot并没有消灭这些原本你要配置的Bean,而是将这些Bean做成了一些默认的配置类,同时利用/META-INF/spring.factories这个文件来指定要加载的默认配置。

如果你是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目录。

责任编辑:武晓燕 来源: 今日头条
相关推荐

2020-12-15 10:49:14

HTTP2TCP

2023-01-13 16:57:50

SpringBoot配置核心

2023-11-08 08:47:34

Spring容器管理

2023-12-25 09:45:54

代码Java

2020-04-25 20:57:37

机器学习机器学习工具

2022-02-22 14:07:07

框架配置类Spring

2010-09-08 13:14:43

OracleSPARCNetra

2021-04-27 10:36:59

计算

2022-08-15 12:31:59

PythonRuby编程语言

2021-05-17 22:28:42

移动云信息科技

2023-09-07 10:31:27

2021-05-10 08:34:22

SpringNative Graalvm

2022-02-16 08:59:43

Go方法Title

2015-03-12 11:05:38

AndroidCyanogen

2015-03-11 09:44:54

AndroidCyanogen

2021-09-05 18:25:30

Go命令仓库

2023-06-30 12:55:48

2022-08-01 07:02:06

SpringEasyExcel场景

2013-11-27 10:12:36

Linux MintLinux Mint

2022-05-03 10:43:43

SpringJava
点赞
收藏

51CTO技术栈公众号