注意!spring.factories 将被弃用,快来Get新写法!

2022-05-25 13:19:29 浏览数 (1)

点击领取2022最新10000T学习资料

如果你是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内容是这样的:

代码语言:javascript复制
org.springframework.boot.autoconfigure.EnableAutoConfiguration=
  com.spring4all.swagger.SwaggerAutoConfiguration

我们只需要创建一个新的文件:/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports,内容的话只需要直接放配置类就可以了,比如这样:

代码语言:javascript复制
com.spring4all.swagger.SwaggerAutoConfiguration

注意:这里多了一级spring目录。

我们创建了一个高质量的技术交流群,与优秀的人在一起,自己也会优秀起来,赶紧点击加群,享受一起成长的快乐。另外,如果你最近想跳槽的话,年前我花了2周时间收集了一波大厂面经,节后准备跳槽的可以点击这里领取

推荐阅读

  • SpringBoot QueryDSL 大大简化复杂查询操作
  • Java 27岁了,赠一波Java经典书籍!
  • 实测!Stream.toList()和Collectors.toList() 哪个性能更好?

··································

你好,我是程序猿DD,10年开发老司机、阿里云MVP、腾讯云TVP、出过书创过业、国企4年互联网6年。从普通开发到架构师、再到合伙人。一路过来,给我最深的感受就是一定要不断学习并关注前沿。只要你能坚持下来,多思考、少抱怨、勤动手,就很容易实现弯道超车!所以,不要问我现在干什么是否来得及。如果你看好一个事情,一定是坚持了才能看到希望,而不是看到希望才去坚持。相信我,只要坚持下来,你一定比现在更好!如果你还没什么方向,可以先关注我,这里会经常分享一些前沿资讯,帮你积累弯道超车的资本。

点击领取2022最新10000T学习资料

0 人点赞