之前 Spring Boot 2.2没能按时发布,是由于 Spring Framework 5.2 的发布受阻而推迟。这次随着 Spring Framework 5.2.0 成功发布之后,Spring Boot 2.2 也紧跟其后,发布了第一个版本:2.2.0。下面就来一起来看看这个版本都更新了些什么值得我们关注的内容。

组件版本更新

这些Spring框架组件更新了依赖版本:

  • Spring AMQP 2.2
  • Spring Batch 4.2
  • Spring Data Moore
  • Spring Framework 5.2
  • Spring HATEOAS 1.0
  • Spring Integration 5.2
  • Spring Kafka 2.3
  • Spring Security 5.2
  • Spring Session Corn

框架中涉及的第三方包也更新了依赖版本:

  • Elasticsearch 6.7
  • Flyway 6.0
  • Jackson 2.10
  • JUnit 5.5
  • Micrometer 1.3
  • Reactor Dysprosium
  • Solr 8.0

大幅的性能提升

关于Spring Boot的性能问题是我们经常在内容平台上看到吐槽的关键词。这次在Spring Boot 2.2中,针对性能这一点,做了大幅的优化。应用程序的启动速度将变得更快,内存占用也会变得更少。

同时,为了加快应用的启动,还增加一个全局延迟初始化的配置参数spring.main.lazy-initialization,这可以让我们的应用更快的完成启动动作,但是值得注意的是,延迟启动也会有下面这些副作用:

  • 应用在进行延迟初始化的时候,HTTP请求的处理会需要更长的时间
  • 原本可能在启动期出现的错误,将延迟到启动的运行期间出现

Java 13的支持

由于Spring Framework 5.2增加了对Java 13的支持,所以Spring Boot 2.2也自然增加了这一特性。同时,Spring Boot 2.2对于老版本的Java 11、Java 8依然支持良好。所以,对于还在使用Java 8的用户也可以安心的升级使用。

不可变的 @ConfigurationProperties 绑定

配置属性现在支持基于构造函数的绑定,该绑定允许@ConfigurationProperties注解修饰的类是不可变的。可以通过使用@ConstructorBinding注解修饰@ConfigurationProperties类或其构造函数之一来启用基于构造函数的绑定。可以在配置属性绑定提供的构造函数参数上使用@DefaultValue和@DateTimeFormat之类的注释。

更多详细信息参阅文档:https://docs.spring.io/spring-boot/docs/2.2.0.RELEASE/reference/html/spring-boot-features.html#boot-features-external-config-constructor-binding

RSocket 支持

已为RSocket添加了自动化配置的starter实现:spring-boot-starter-rsocket。当项目依赖了spring-security-rsocket的时候,该starter还会自动配置Spring Security对RSocket的集成实现。

更多详细信息参阅文档:https://docs.spring.io/spring-boot/docs/2.2.0.RELEASE/reference/html//spring-boot-features.html#boot-features-rsocket

健康检查的分组支持

现在可以将Spring Boot Actuator中各种各样的健康指标实现分组。如果将应用程序部署到Kubernetes,一个典型的需求是您可能需要不同组的健康指标来进行“liveness”和“readiness”的探测。这个时候,我们就可以通过配置属性来定义不同的分组,比如:下面创建了一个仅具有DataSource指示器的自定义组:

management.endpoint.health.group.custom.include=db

通过访问localhost8080/actuator/health/custom,就可以访问自定义的组了。

更多详细信息参阅文档:https://docs.spring.io/spring-boot/docs/2.2.0.RELEASE/reference/html//production-ready-features.html#health-groups

其他更新

Release Notes中还记录了许多其他更改和改进。读者可以通过下方链接查看更多更新内容:

https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.2-Release-Notes

参考资料

欢迎关注我的公众号:程序猿DD,获得独家整理的学习资源和日常干货推送。

如果您对我的专题内容感兴趣,也可以关注我的博客:didispace.com

最新文章

  1. 微冷的雨Java基础学习手记(一)
  2. ( 译、持续更新 ) JavaScript 上分小技巧(四)
  3. linux下git的简单运用
  4. ArrayBlockingQueue-我们到底能走多远系列(42)
  5. 使用Apache ab进行http性能测试
  6. Android中对JSONArray数组的指定项进行删除,更新。
  7. javascript 操作复选框无效
  8. 【转】- 使用T4模板批量生成代码
  9. Linux进程间通信IPC学习笔记之同步一(线程、互斥锁和条件变量)
  10. VS2005混合编译ARM汇编代码-转
  11. linux CentOS6.5 安装SVN & 可视化管理工具iF.SVNAdmin
  12. jade模板引擎简明用法
  13. mysql删除重复数据只保留一条
  14. 我的第一个python web开发框架(22)——一个安全小事故
  15. 构建MFS分布式文件系统
  16. git给log设置别名来快速查看友好的log信息
  17. 20135234mqy-——信息安全系统设计基础第二周学习总结
  18. mysql监控以及调优
  19. ES6的Promise对象
  20. Unity3D-制作火焰效果

热门文章

  1. 渗透之路基础 -- 服务端请求伪造SSRF
  2. Java-HashSet集合中的几种遍历方式
  3. charles 外部代理设置
  4. CDH5.16.1离线集成Phoenix
  5. 在linux服务器上装svn版本管理,自动部署代码到web项目
  6. React学习笔记(持续更新)
  7. axios使用post方式请求出现400
  8. C++ new和malloc的区别
  9. 从零开始入门 K8s | 应用配置管理
  10. pikachu-数字型注入(post)#手工注入