1. XenForo 1.5.14 中文版——支持中文搜索!现已发布!查看详情
  2. Xenforo 爱好者讨论群:215909318 XenForo专区

新闻 Spring Boot 2.0 正式发布,正式支持 Java 9 下载

本帖由 漂亮的石头2018-03-01 发布。版面名称:软件资讯

  1. 漂亮的石头

    漂亮的石头 版主 管理成员

    注册:
    2012-02-10
    帖子:
    488,119
    赞:
    47
    Spring Boot 2.0 目前已在 GitHub 上发布了 v2.0.0.RELEASE 版本(https://github.com/spring-projects/spring-boot/releases/tag/v2.0.0.RELEASE)

    [​IMG]

    不过还没同步至 Maven 中央仓库,请保持关注 https://projects.spring.io/spring-boot/

    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 还包含许多错误修复和性能改进,这些都是升级的重要原因。
    Spring Boot 2.0 正式发布,正式支持 Java 9下载地址
     
正在加载...