转载

​Spring Boot 2.0 正式发布,正式支持 Java 9

Spring Boot 2.0 正式发布。

Spring Boot 2 新特性概览:正式支持 Java 9

根据我们此前的报道,Spring Boot 2 最大的变化主要集中在以下几方面:

  • Spring Boot 2 基于 Spring Framework 5,而整个 Spring Framework 5.0 代码库运行于 Java 8 之上。所以,Spring Boot 2 要求的 JDK 版本最低也是 Java 8,同时也已正式支持 Java 9(这里有一份使用 Java 9 运行 Spring Boot 的文档 https://www.oschina.net/translate/spring-boot-with-java9)

  • 与 Spring Boot 1 的差别在于,许多配置属性已被重命名或被删除,因此由 Spring Boot 1 迁移至 Spring Boot 2 需要注意一些配置属性

  • Spring Boot 为 Java 应用程序引入的关键创新是将 Servlet 容器嵌入到一个可执行的 jar 包中,这个 jar 包会打包整个应用。Spring Boot 还提供了 Tomcat、Undertow 和 Jetty 作为可选的方案

在此前发布的 RC 版本中,Tomcat、Undertow 和 Jetty 均已支持 HTTP/2,并通过 Conscrypt 库提供对原生 TLS 的支持。这对 Spring Boot 的默认服务器 Tomcat 8.5.x 来说意义重大,如果 libtcnative 库及其依赖项安装在主机操作系统上,则只支持 HTTP/2。

监控方面,Spring Boot 2 增强了对 Micrometer 的集成。RabbitMQ、JVM 线程和垃圾收集指标会自动进行 instrument 监控,异步控制器(controller)也会自动添加到监控里。通过集成,还可以对 InfluxDB 服务器进行监控。

数据方面,Spring Boot 2 让你能够以更加细粒度的方式自定义 Hibernate 属性。另外,还可以暴露 RedisCacheConfiguration,从而控制 RedisCacheManager。Flyway 和 Liquibase 配置也更灵活。

此外,Spring Boot 2 也大大增强了对 GSON 的支持,还包含了改进的 actuator JSON 架构。

还有一个值得关注的变更就是 Spring Boot banner —— 即启动时的 ASCII 图像,它被开发团队广泛应用于展示自己的应用品牌信息。在 Spring Boot 2 中,现已支持动画 GIF。

值得注意的是,在 Spring Boot 2.0 中,许多配置属性已被重命名或被删除,为了方便升级,Spring Boot 发布了一个新的 spring-boot-properties-migrator 模块。只要将其作为依赖添加到项目中,它不仅会分析应用程序的环境并在启动时打印诊断信息,而且还会在运行时阶段为项目临时将属性迁移至新的配置方式。

有关 Spring Boot 2.0 更详细的迁移指南,可以保持关注我们正在翻译的官方文档( https://www.oschina.net/translate/spring-boot-2-0-migration-guide) 。欢迎有兴趣的开发者一起参与翻译~!

下面我们来看看 Spring Boot 2 值得关注的新特性。

支持 Java 9

Spring Boot 2 最值得期待的新功能莫过于对 Java 9 的正式支持,现在要求最低的 JDK 版本是 Java 8,这意味着不可以使用 JDK 7 或更旧的版本运行 Spring Boot 2。

Spring Framework

Spring Framework 5.0 现已与 Spring Boot 集成。Spring Framework 5.0 一些有趣的功能:

  • 支持 JDK 9 和 Java EE 8 级别的 API(如 Servlet 4.0)

  • 与 Reactor 3.1, JUnit 5, 和 Kotlin 语言的全面集成

  • 带来了许多函数式 API 变体 (functional API variants)

  • 响应式堆栈 Web 框架 —— Spring WebFlux

  • 完全支持 JUnit 5 Jupiter,因此可以在 JUnit 5 中编写测试

  • 添加对@Nullable 和@NotNull 注解的支持,以在编译时而不是运行时处理空指针异常

Spring Security

虽然 Spring Security 并非是 Spring Boot 的正式组成部分,但这里仍值得一提,因为它能与 Spring Framework 5.0 很好地搭配使用。最新的 Spring Security 5 提供了超过 400 多项的功能增强和错误修复。有以下值得关注的新功能:

  • 用户可通过 OAuth 2.0 provider 使用现有帐户进行身份验证

  • 与 Spring Framework 5 一样,Spring Security 5 也添加了对响应式编程的支持

  • 以更现代的方式完成对密码的编码

@ConditionalOnBean

从 Spring Boot 1.x 迁移到 2.x 时需要考虑的重要一点是,当确定条件是否满足时,@ConditionalOnBean 注解现在使用逻辑 AND 而不是逻辑 OR 来表示。

对 WebFlux 和 WebFlux.fn 的支持

Spring Boot 2.0 为响应式的 Spring Web 框架提供了一个新的启动器 — spring-boot-starter-webflux,spring-boot-starter-webflux 本身包含 WebFlux,再加上 Reactor Netty 作为默认的 Web 引擎(spring-boot-starter-reactor-netty)。

可以使用 @WebFluxTest 来测试响应式的控制器,它为 Spring MVC 提供了类似于 @WebMvcTest 的支持,而且 WebTestClient 是自动配置的。

最低支持版本的更新

  • Jetty 9.4

  • Tomcat 8.5

  • Hibernate 5.2

  • Gradle 3.4

Thymeleaf

Spring Boot 2 另一个值得关注的新特性是现已正式支持 Thymeleaf 3,包含了对 Thymeleaf 和 Spring Security Thymeleaf 依赖关系的更新。Thymeleaf 3 中值得关注的变化:

  • 由于使用了新的解析系统,Thymeleaf 不再基于 XML

  • 引入新的文本模板模式,它??给 Thymeleaf 提供了输出 CSS,Javascript 和纯文本的功能

  • 重写了引擎,性能显著提升

最后的话

Spring Boot 2 是一个重大版本,以下新增的特性或许是你选择升级的理由:

  • 支持 Java 9

  • 对响应式应用更好的支持

  • 支持 Thymeleaf 3

如果你能从这些变化中受益,不妨考虑选择升级。另外,Spring Boot 2 还包含许多错误修复和性能改进,这些都是升级的重要原因。

原文  https://www.oschina.net/news/93772/spring-boot-2-0
正文到此结束
Loading...