当前位置: 首页 > 科技观察

Spring.Factories即将被弃用,快来get新的写法

时间:2023-03-16 19:33:27 科技观察

如果你是SpringBoot用户,想必有这样的开发经历。当我们要引入某个功能的时候,只需要在maven或者gradle中配置,直接引入对应的Starter,就可以马上使用,而不需要像传统的Spring应用那样写一个xml或者java配置类来初始化各种bean。如果你探索过这些Starters的原理,你一定知道SpringBoot并没有淘汰你原本要配置的bean,而是将这些bean做成了一些默认的配置类,同时使用/META-INF/spring.factories文件来指定要加载的默认配置。这样,当SpringBoot应用程序启动时,就会根据引入的各种Starters中/META-INF/spring.factories文件中指定的配置类来加载Bean。在这次刚刚发布的SpringBoot2.7中,关于这个/META-INF/spring有一个不推荐使用的内容。自从SpringBoot3开始将删除对/META-INF/spring.factories的支持以来,已经进行了更改。那么具体如何更改它呢?我们以之前写的swaggerstarter为例。它的/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目录。