了解Spring Boot的用户都知道,当我们要引入某个功能的时候,只需要在pom.xml配置文件中直接引入对应的starter就可以了。
了解starter原理的用户都知道,Spring Boot利用spring-boot-autoconfigure.jar包下的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的支持。如下图所示
Spring Boot 2.7 版本如下:
多了一个spring文件夹,多了一个org.springframework.boot.autoconfigure.AutoConfiguration.imports文件
那么具体怎么改呢?以下列代码为例,它的/META-INF/spring.factories
内容是这样的:
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ com.liubin.demospringbootstarter.DemoAutoConfiguration
我们只需要创建一个新的文件:/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
,内容的话只需要直接放配置类就可以了,比如这样:
com.liubin.demospringbootstarter.DemoAutoConfiguration
注意:这里多了一级spring目录。