当前位置: 代码网 > it编程>编程语言>Java > SpringBoot 注解 @AutoConfiguration 在 2.7 版本中被新增的使用方法详解

SpringBoot 注解 @AutoConfiguration 在 2.7 版本中被新增的使用方法详解

2024年09月30日 Java 我要评论
自 spring boot 2.7.0 版本起,关于自动配置进行了较大调整,要特别注意,主要内容如下。1、自动配置注册文件之前版本的自动配置类是写在 meta-inf/spring.factories

自 spring boot 2.7.0 版本起,关于自动配置进行了较大调整,要特别注意,主要内容如下。

1、自动配置注册文件

之前版本的自动配置类是写在 meta-inf/spring.factories 文件中的,内容示例如下:

org.springframework.boot.autoconfigure.enableautoconfiguration=\
com.example.myautoconfiguration1,\
com.example.myautoconfiguration2,\
com.example.myautoconfiguration3

2.7.0 版本开始,变更为写在 meta-inf/spring/org.springframework.boot.autoconfigure.autoconfiguration.imports 文件中,每行条记录,内容示例如下:

com.example.myautoconfiguration1
com.example.myautoconfiguration2
com.example.myautoconfiguration3

a) 编写格式确实是比之前方便多了,但文件名确实也太长了,比较难记。
b) 为了兼容性 meta-inf/spring.factories 虽然现在被标识废弃了,但现在仍然可以使用,后续可能被彻底删除,建议使用新的规范。

2、新注解 @autoconfiguration

新增了一个自动配置注解 @autoconfiguration,用来代替之前的 @configuration,用于标识新自动配置注册文件中的顶级自动配置类,由 @autoconfiguration 注解嵌套、导入进来的其他配置类可以继续使用 @configuration 注解。

另外,为方便起见,@autoconfiguration 注解还支持 after, afternames, beforebeforenames 属性进行自动配置排序。

你可以把 @autoconfiguration 在一定程度上理解为 @configuration + @autoconfigureafter + @autoconfigurebefore 的组合。

除此组合包装之外,在 @springbootapplication 自动加载时,使用 autoconfigurationexcludefilter 排除了 @autoconfiguration 修饰的类,这样更明确的把 @autoconfiguration 定义为自动配置类,所以使用 @autoconfiguration 注解的类默认不会被 spring 加载,你必须要主动配置到 meta-inf/spring/org.springframework.boot.autoconfigure.autoconfiguration.imports 文件中才可以正常被加载。

这个注解可以说细分的更加清晰了,即直接理解为自动配置专用注解,用专门的注解来干专门的事,这样也可以用来区分用 @configuration 标识的普通配置类。

2.7 版本还新增的其他内容

  • 支持 graphql
  • 支持 podman
  • 支持 rabbitstreamtemplate
  • 支持 hazelcast
  • 支持 cache2k
  • web server ssl 增强
  • info 端点增强
  • 单元测试加强

以上内容的新增,具体情况详见官网。

总结

spring boot 2.7.0 新增了不少新特性,变化还比较大,特别是自动配置的变更有明显调整,要特别注意。

到此这篇关于springboot 注解 @autoconfiguration 在 2.7 版本中被新增(使用方法)的文章就介绍到这了,更多相关springboot 注解 @autoconfiguration内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com