Spring Boot 2.0 Release Notes 中文版

  • 时间:
  • 浏览:0

Spring Boot公开了有有另另1个新的 spring.data.web 配置namespace来很容易的配置分页和排序。

loggers actuator 端口现在允许重新设置有有另另1个日志级别作为它的默认值。

Spring Boot 2.0通过自动配置和starter-POMs 来全面支持reactive applications。Spring Boot的内部两种也在必要时进行了更新,为各种组件的响应式编程提供了自动化配置(最明显的是亲戚亲戚当.我 的嵌入式服务器支持)。

Tomcat 8.5

现在可不时要使用spring.cache.redis.*属性配置Redis的缓存默认值。

您还可不时要使用@EndpointWebExtension@EndpointJmxExtension为端口编写特定的技术扩展功能。删剪信息请参阅更新的参考文档。

亲戚亲戚当.我 现在本来会在默认情况报告下暴露统统 端口。但会 您要升级现有的Spring Boot 1.5程序运行运行运行,请务必查看迁移指南并怪怪的注意management.endpoints.web.exposure.include属性。

数据库初始化逻辑在Spring Boot 2.0中但会 更加合理化。Spring Batch,Spring Integration,Spring Session和Quartz的初始化现在默认情况报告下仅在使用嵌入式数据库时才会发生。该 enabled 属性已被更具表现力的枚举所取代。类似于,但会 您我你会始终执行Spring Batch初始化,您可不时要通过设置 spring.batch.initialize-schema=always来实现。

但会 您更喜欢除了Jackson以外的产品,Spring Boot 2.0对GSON支持但会 大大提高。亲戚亲戚当.我 还引入了对JSON-B的支持(包括JSON-B测试支持)。

Thymeleaf 3

YAML文件和Properties文件现在都暗含Origin信息,从而可帮助更好的跟踪项目加载情况报告。有一些Spring Boot形态学 可不时要利用有有哪些信息,并在适当时用于展示。

Spring Boot现在要求基于Gradle 4.x. 但会 您要升级使用Gradle版本,请查看迁移指南。

有关删剪信息,请参阅 this "how to" section。

现在支持自定义Hibernate命名策略。对于高级场景,您现在可不时要使用常规bean在上下文中定义ImplicitNamingStrategyPhysicalNamingStrategy

简书博客

Spring Boot 2.0中的默认的数据库连接池组件已从Tomcat连接池切换到HikariCP。Hakari提供了更卓越的性能,不过总要一些用户更喜欢Tomcat Pool。

Spring Boot的Gradle插件但会 在很大程度上进行了重新编写,以实现一些重大改进。您可不时要在其参考文献和API文档中阅读关于插件功能的更多信息。

Spring Boot现在支持自动配置开源数据库InfluxDB。要启用InfluxDB支持,您时要设置有有另另1个spring.influx.url属性,并将influxdb-java暗含到您的类路径中。

您可不时要使用内存的JobStores或删剪的基于JDBC存储的 JobDetail。所有JobDetailCalendarTrigger beans但会 通过Scheduler自动注册。

有关更多删剪信息,请阅读参考文档“Quartz Scheduler”帕累托图。

在启动时,使用spring-boot-starter-webflux starter POM,它将提供支持Spring WebFlux的嵌入式Netty Server。有关删剪信息,请参阅Spring Boot参考文档。

Spring Boot 2.0改进了从一些端点返回的JSON payloads信息。

当使用嵌入式容器时,当您的程序运行运行运行启动时,上下文路径将与HTTP端口一起去打印出来。类似于,embedded Tomcat现在看起来像前一天:

Note: 我你会只使用 Netty 作为有有另另1个响应式Server,而不提供对阻塞 servlet API 的支持。

Spring Boot 使用自定义的spring.jdbc.template 属性自动配置JdbcTemplate

自动配置现在也支持Quartz Scheduler。亲戚亲戚当.我 还去掉 了新的spring-boot-starter-quartz starter POM。

image.png

Spring Boot 2.0 但会 能很好地工作了,但会 但会 通过基于JDK 9的测试。所有的jar包总要系统兼容性模块测试清单中(the manifests for module system compatibility)附带自动测试用例。

对Spring Boot 2.0的一些actuator 端口进行了改进。所有HTTP actuator 端口现在都发布在/actuator路径下,但会 改进了生成的JSON payloads。

高广超:多年一线互联网研发与架构设计 经验,擅长设计与落地高可用、高性能、可扩展的互联网架构。

最后,为了好玩,Spring Boot 2.0现在支持动画GIF横幅。类似于this project 。

Spring Boot 2.0要求Java 8作为其最低版本。为利用Java 8的形态学 ,已更新了一些现有API,类似于:接口上的默认方式 ,函数回调以及新的API,如javax.time。但会 您目前正在使用Java 7或更早版本,越来越 在开发Spring Boot 2.0程序运行运行运行前一天,您时要升级您的JDK。

有关更多删剪信息,请参阅参考文档的更新“Metrics”帕累托图。

在Spring Boot 2.0中,但会 彻底修改了用于绑定Environment属性的@ConfigurationProperties机制。亲戚亲戚当.我 借此但会 收紧了松散的绑定规则,并修复了Spring Boot 1.x版本中一些不一致的地方。

除了上方提到的WebFlux和WebFlux.fn支持之外,还对Web程序运行运行运行开发进行了以下改进。

使用Spring Session的用户现在可不时要通过 sessions actuator 端口查看和删除sessions。

除了支持Spring MVC和JMX,您现在可不时要在开发Jersey或WebFlux程序运行运行运行时访问actuator端口。Jersey通过自定义JerseyResource ,WebFlux使用自定义 HandlerMapping来支持。

Flyway 5

除了上方列出的变化之外,还有统统 小的调整和改进,包括:

除了上方提到的“Reactive Spring Data”支持外,在数据领域还进行了一些一些更新和改进。

现在可不时要通过定义有有另另1个MongoClientSettingsBuilderCustomizer类型的bean,来定制支持Spring Boot自动配置的Mongo Client。

Web filters 现在在所有容器内都支持 eagerly 初始化。

Spring Boot 2.0支持集成Spring Security 5.0。为WebFlux程序运行运行提供Spring Security的自动配置。

使用WebFlux的Spring Security访问规则可不时要通过SecurityWebFilterChain来自动配置。但会 你前一天使用过Spring MVC,但会 感到非常熟悉。有关更多删剪信息,请参阅Spring Boot参考文档和Spring Security文档。

Spring Boot 2.0现在支持Kotlin 1.2.x,并提供了两种runApplication功能来通过Kotlin运行Spring Boot程序运行运行运行。一些Spring项目的最新版本中也对Kotlin做了支持(如Spring Framework,Spring Data和Reactor)。

但会 WebFlux不依赖于Servlet API,现在首次支持Netty作为嵌入式Server。该spring-boot-starter-webflux starter POM 将引入 Netty 4.1和Ractor Netty。

Thymeleaf starter 现在暗含了支持javax.time 类型的thymeleaf-extras-java8time

亲戚亲戚当.我 已尽但会 将一些第三方依赖jar升级到最新稳定版本。本版本中一些重要的依赖升级包括:

但会 您目前正在运行更早版本的Spring Boot,强烈建议在迁移到Spring Boot 2.0前一天先升级到Spring Boot 1.5。

Metrics可不时要输出到各种系统,如Atlas,Datadog,Ganglia,Graphite,Influx,JMX,New Relic,Prometheus,SignalFx,StatsD和Wavefront等。另外还可不时要使用简单的in-memory metrics。

Hibernate 5.2

为了支持Spring MVC,JMX,WebFlux和Jersey,亲戚亲戚当.我 为actuato端口开发了两种新的编程模型。该@Endpoint注解可不时要与@ReadOperation@WriteOperation@DeleteOperation组合使用,来定制有有另另1个对技术无感知的开发端口。

现在一些端口总不能更精确地反映底层数据的JSON信息。类似于,/actuator/conditions端口(在Spring Boot 1.5中是/autoconfig)现在将有有另另1个多顶级contexts key来将结果分组。

前一天例子是env 可用 actuator端点时其包括的origin信息。下面的代码显示的是通过 spring.security.user.name属性,得知application.properties文件来自jar包下行1,列27。

ConverterGenericConverter 现在通过 @WebMvcTest@WebFluxTest实现自动扫描。

Spring Boot 2.0建立在Spring Framework 5之上,Spring Framework 5.0中提供的新功能,请在升级前一天查看其升级指南。

有关更多信息,请参阅参考文档的Kotlin支持帕累托图。

Unconditional类现在暗含在自动配置报表中。

一些使用Spring构建的项目的现在总要为 reactive applications提供一流的支持。响应式编程是删剪异步和非阻塞的。它们旨在用于事件驱动模型(而总要传统的每个请求都时要有有另另1个程序运行运行执行的模型)。读者可不时要将Spring框架参考文档中的“Web on Reactive Stack”帕累托图作为有有另另1个很好的入门参考。

头条号

现在也可不时要通过HibernatePropertiesCustomizerbean Bean来更加细致地定制Hibernate使用的一些属性。

在底层技术支持的情况报告下,Spring Data也为reactive applications提供支持。目前Cassandra,MongoDB,Couchbase和Redis总要响应式API支持。

通过新的Binder API可不时要在您的代码中直接使用@ConfigurationProperties。类似于,下面的示例将实现绑定PersonName到List对象:

新的spring-boot-starter-json starter gathers必要的字节来读写JSON。它不仅提供了 jackson-databind,一起去也为java8环境提供了统统 非常有用的模块:jackson-datatype-jdk8, jackson-datatype-jsr310jackson-module-parameter-names。你你这俩新的starter现在被用于前一天定义jackson-databind的地方。

补充和调整了Spring Boot 2.0中提供的测试支持:

使用新的ApplicationConversionService类的绑定器,提供了一些对属性绑定怪怪的有用的额外转换器。最引人注目的是 Duration和分隔字符串类型的转换器。

/actuator 端口现在为所有的活动端口提供了有有另另1个HAL格式的超媒体链接(即使在classpath下越来越 Spring HATEOAS)。

Spring Boot 2.0不再提供一些人的metrics API。相反,亲戚亲戚当.我 依靠micrometer.io来满足所有程序运行运行运行监控需求。

现在可不时要使用Spring REST Docs生成的REST API 文档,并随每个版本发布。

现在Tomcat,Undertow和Jetty都但会 提供对HTTP / 2的支持。但会 这帕累托图取决于所选的Web服务器和程序运行运行运行环境(但会 JDK 8不支持该协议)。

在YAML中配置源可不时要像前一天表示:

欢迎关注 高广超的简书博客 与 收藏文章 !

欢迎关注 头条号:互联网技术栈 !

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

为支持WebFlux程序运行运行运行的“切片”测试,增加了新的 @WebFluxTest 注解.

@ConditionalOnBean 现在在挑选条件与非 被满足时使用逻辑AND而总要逻辑OR。

支持JVM指标(包括CPU,内存,程序运行运行和GC),Logback,Tomcat,Spring MVC&RestTemplate

类似于,BindException 类绑定失败时抛出的OriginProvider。这意味着着 origin信息可不时要很好地从故障分析器中显示出来。

但会 仅提供自定义urluser属性,越来越 现在Flyway和Liquibase的自动配置将重新使用标准的datasource属性,而总要忽略它们。这使您可不时要为了迁移目来,仅使用所需的信息来定制DataSource

WebTestClient bean测试提供 @AutoConfigureWebTestClient 注解。 该注解将自动应用与 @WebFluxTest 测试。

Spring Boot可为您提供所有针对以上技术的不同 starter-POMs。类似于,spring-boot-starter-data-mongodb-reactive暗含了所有对响应式mongo的相关驱动依赖。

一些人介绍:

但会 在使用Flyway或Liquibase管理你的DataSource,但会 您正在使用嵌入式数据库,Spring Boot现在会自动关闭Hibernate的自动DDL功能。

本文首发在 高广超的简书博客 转载请注明!

Spring Boot 2.0现在基于DataSource自动检测jOOQ方言(类似于于为JPA方言所做的)。@JooqTest还引入了有有另另1个新的注解来繁复非要jOOQ使用的测试。

计划任务(i.e. ``@EnableScheduling) 可不时要通过scheduledtasks`actuator 端口来进行review。

为了能更加容易地测试自动配置,增加了有有另另1个新的ApplicationContextRunner。亲戚亲戚当.我 已将大帕累托图内部测试套件移至此新模型。删剪信息请参阅更新的文档。

spring CLI程序运行运行运行现在暗含可用于创建Spring Security的兼容散列密码的encodepassword command。

Spring WebFlux是支持Spring MVC的非阻塞式替代方案。Spring Boot为基于注释的Spring WebFlux程序运行运行运行以及WebFlux.fn提供了自动配置支持,为WebFlux.fn提供了更实用的 style API。

但会 1.5版本是Spring Boot的主要版本,所有升级现有的程序运行运行运行但会 会比平常更繁复一些。亲戚亲戚当.我 制定了专门的迁移指南来帮助您升级现有的Spring Boot 1.5程序运行运行运行。

image.png

Tip:检查 the configuration changelog以获取配置更改的删剪概述。

有关更新绑定规则的更多信息,请参阅此Wiki页面。