史上最全 SpringBoot 1.5.0.RELEASE 版本特性介绍(全文英译版)

Spring Boot  v1.5.0.RELEASE

参考链接:https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-1.5-Release-Notes#new-and-noteworthy

Spring Boot 1.5 Release Notes

Upgrading from Spring Boot 1.4

Deprecations from Spring Boot 1.4

在Spring Boot 1.4中弃用的类、方法和属性已经在这个版本中删除了。请确保在升级之前没有调用已弃用的方法。特别地,HornetQ和Velocity支撑被移除。

Renamed starters

以下在Spring Boot 1.4中被重命名的启动器现在已经被删除了,如果你得到了“unresolved dependency”错误,请检查你是否拉入了正确命名的启动器:

spring-boot-starter-ws → spring-boot-starter-web-services

spring-boot-starter-redis → spring-boot-starter-data-redis

@ConfigurationProperties validation

如果您有使用JSR-303约束注解的@ConfigurationProperties类,那么您现在应该用@Validated额外注解它们。现有的验证将继续工作,但是将记录一个警告。将来,没有@Validated的类将根本不被验证。

Spring Session store

以前,如果你有Spring Session和没有特殊配置的Redis, Redis会自动用于存储会话。现在需要指定存储类型;Redis Spring Session的现有用户应该增加以下配置:

spring.session.store-type=redis

Actuator security

执行器“sensitive”的端点现在在默认情况下是安全的(即使不依赖于“Spring Security”)。如果您现有的Spring Boot 1.4应用程序使用了Spring Security (并且没有任何自定义安全性配置),那么应该像以前一样工作。如果您现有的Spring Boot 1.4应用程序具有自定义安全配置,并且希望对敏感端点开放访问,那么您需要在安全配置中显式地配置该配置。如果您正在升级一个不依赖于Spring Security 的Spring Boot 1.4应用程序,并且如果希望保持对敏感端点的开放访问,就需要设置management.security.enabled=false。有关更多细节,请参阅更新后的参考文档-updated reference documentation

访问端点所需的默认角色也从ADMIN更改为ACTUATOR。这是为了防止在碰巧将ADMIN角色用于其他目的时意外暴露端点。如果您想恢复Spring Boot 1.4 behavior设置management.security.roles属性为ADMIN。

InMemoryMetricRepository

InMemoryMetricRepository不再直接实现MultiMetricRepository。现在注册了一个新的InMemoryMultiMetricRepository bean,它满足MultiMetricRepository接口,并由一个常规的InMemoryMetricRepository支持。由于大多数用户将与MetricRepository或MultiMetricRepository接口交互(而不是内存中实现),因此该更改应该是透明的。

spring.jpa.database

现在可以从spring.datasource.url属性自动检测spring.jpa.database中的公共数据库。url属性。如果您已经手动定义了spring.jpa.database,并且您使用了一个公共数据库,那么您可能想要尝试完全删除该属性。

一些数据库有不止一种方言(例如,Microsoft SQL Server有3种方言),所以我们可能会配置一个与您正在使用的数据库版本不匹配的方言。如果您之前有一个有效的设置,并且希望依赖Hibernate来自动检测方言,则设置spring.jpa.database=default。另外,您也可以使用spring.jpa.database-platform属性自己设置方言。

@IntegrationComponentScan

Spring Integration的@IntegrationComponentScan注解现在是自动配置的。如果你遵循推荐的项目结构-recommended project structure,你应该尝试删除它。

ApplicationStartedEvent

如果你当前在代码中监听ApplicationStartedEvent,你应该重构以使用ApplicationStartingEvent。我们重新命名了这个类,以便更准确地反映它的功能。

Spring Integration Starter

spring-boot-starter-integration POM不再包含spring-integration-jmx。如果您需要Spring Integration JMX支持,您应该自己包含spring-integration-jmx依赖项。

Devtools excluded by default

Maven和Gradle插件现在都默认将spring-boot-devtools jar打包到“fat”jar中。如果你正在使用devtools远程支持,你现在需要在你的build.gradle或者pom.xml文件中显式地设置excludeDevtools属性。

Gradle 1.x

Spring Boot Gradle插件不再与Gradle 1兼容。以及Gradle 2.x的早期版本。请确保你是Gradle 2.9或更高版本。

Remote CRaSH shell

不幸的是,Spring Boot用于提供远程SSH支持的CRaSH project不再被积极维护。很遗憾,我们已经决定弃用远程执行器SSH支持,并且计划在Spring Boot 2.0中完全删除它。

OAuth 2 Resource Filter

The default order of the OAuth2 resource filter has changed from 3 to SecurityProperties.ACCESS_OVERRIDE_ORDER - 1. This places it after the actuator endpoints but before the basic authentication filter chain. The default can be restored by setting security.oauth2.resource.filter-order = 3

OAuth2资源过滤器的默认顺序已从3更改为SecurityProperties.ACCESS_OVERRIDE_ORDER - 1.。这会将它放置在执行器端点之后,但在基本身份验证过滤器链之前。可以通过设置security.oauth2.resource.filter-order = 3来恢复默认值。

JSP servlet

默认情况下,JSP servlet不再处于开发模式。使用DevTools时,会自动启用开发模式。也可以通过设置server.jsp-servlet.init-parameters.development=true来显式启用它。

Ignored paths and @EnableWebSecurity

In Spring Boot 1.4 and earlier, the Actuator would always configure some ignored paths irrespective of the use of @EnableWebSecurity. This has been corrected in 1.5 so that using @EnableWebSecurity will switch off all auto-configuration of web security thereby allowing you to take complete control.

在Spring Boot 1.4和更早的版本中,执行器总是会配置一些忽略的路径,而不管是否使用@EnableWebSecurity。这个问题已经在1.5中得到了纠正,因此使用@EnableWebSecurity将关闭所有web安全的自动配置,从而允许你完全控制。

New and Noteworthy

Tip Check the configuration changelog for a complete overview of the changes in configuration.

Third-party library upgrades

许多第三方库已经升级到最新版本。更新包括Spring Data Ingalls, Jetty 9.4, JooQ 3.9, AssertJ 2.6.0, Hikari 2.5和Neo4J 2.1。几个Maven插件也进行了升级。

Loggers endpoint

一个新的执行器记录器端点允许您动态查看和更改应用程序日志记录级别。JMX和MVC端点都可用。例如,要更改MVC端点的日志记录级别,您可以向 /loggers/com.yourcorp.application发布一篇文章。使用以下JSON:

{"configuredLevel":"DEBUG"}

要使用JMX端点更新记录器,您将使用setLogLevel操作。For more details see the updated documentation.

Apache Kafka support

Spring Boot 1.5 include auto-configuration support for Apache Kafka via thespring-kafkaproject. To use Kafka simply include the spring-kafka`depenency and configure the appropriate `spring.kafka.* application properties.

Spring Boot 1.5包含了通过spring-kafka项目对Apache Kafka的自动配置支持。要使用Kafka,只需包含spring-kafka依赖项并配置相应的spring.kafka.* application属性。

从Kafka接收消息就像注解一个方法一样简单:

Cloud Foundry actuator extensions

Spring Boot的执行器模块现在包含了额外的支持,当您部署到兼容的Cloud Foundry实例时就会激活这些支持。/cloudfoundryapplication路径为所有NamedMvcEndpoint bean提供了另一种安全路由。

云计算管理ui可以利用端点来显示额外的执行器信息。例如,关键云计算在应用程序状态旁边显示运行状况信息:

你可以在参考文档-reference documentation中阅读更多关于Cloud Foundry端点的信息,你可以阅读这篇关于PCF 1.9的博文-this blog post about PCF 1.9.。

LDAP support

Spring Boot现在为任何兼容的LDAP服务器提供自动配置,并支持Unbounded内嵌的内存中的LDAP服务器。

See the documentation for more details.

AuditEvents Endpoint Support

新的AuditEventsJmxEndpoint bean现在允许您通过JMX查询以前记录的AuditEvents。MBean通过getData操作公开AuditEventRepository查找方法。对于身份验证和授权事件,会自动记录审计,您可以使用AuditEventRepository记录自己的事件。该信息也由一个新的/auditevents MVC端点公开。

Transaction manager properties

现在可以使用spring.transaction.*属性配置自动配置的PlatformTransactionManager的各个方面。目前支持“default-timeout”和“提交失败时回滚(rollback-on-commit-failure)”属性。

JmxEndpoint interface

引入了一个新的JmxEndpoint接口,允许您开发仅通过JMX公开的执行器端点。这个接口非常类似于已经为仅针对MVC的端点提供的MvcEndpoint接口。

Vendor specific flyway migrations

您现在可以定义特定于数据库供应商的飞行路线迁移。要使用特定于供应商的迁移,请设置flyway.locations属性如下:

flyway.locations=db/migration/{vendor}

See this how-to for more details.

Deprecation level

现在可以在元数据中定义属性的弃用级别。级别可以是warning(默认)或error。

下面是一个在Spring Boot 2中移动的属性的手动元数据示例:

到目前为止,当一个已弃用的属性不再绑定时,我们将全部删除元数据。这个新特性允许标记一个属性(这里是server.context-parameters)的错误。您最喜欢的IDE的新版本应该使用它来提供帮助。

Testing updates

现在可以排除通常由@Test…注解导入的自动配置。所有现有的@Test…注解现在都包含了一个excludeAutoConfiguration属性。或者,您可以直接将@ImportAutoConfiguration(exclude=…​) 添加到您的测试中。

Spring Boot 1.5还引入了一个新的@JdbcTest注解,可以用来测试直接的JDBC交互。

Custom fat jar layouts

Spring Boot Maven和Gradle插件现在支持自定义fat jar布局。这个特性允许在Spring Boot之外开发实验性的布局,比如这个布局-such as this one。更多详细信息,请参见更新后的文档- the updated documentation.。

JmsTemplate customizations

It is now possible to customize the auto-configured JmsTemplate using additional keys available in the spring.jms.template.* namespace.

现在可以使用spring.jms.template.*名称空间中提供的其他键来定制自动配置的JmsTemplate。

Miscellaneous

Mockito 2.x现在可以与@MockBean一起使用(仍然与Mockito 1.9兼容)

嵌入的启动脚本现在支持强制停止

为Cassandra添加了一个新的健康检查

Cassandra用户定义的类型现在被解析(通过Spring Data的SimpleUserTypeResolver)

skip属性现在适用于Spring Boot Maven插件运行、“停止”和“重新打包”目标

如果找到多个主方法类,Maven和Gradle插件将自动使用带@SpringBootApplication注释的方法类

Deprecations in Spring Boot 1.5

TomcatEmbeddedServletContainerFactory.setTldSkip已弃用,取而代之的是setTldSkipPatterns

ApplicationStartedEvent已被ApplicationStartingEvent取代

LoggingApplicationListener的几个常量已经被LogFile的版本取代

使用Guava进行缓存已经被弃用,因为Guava支持将在Spring Framework 5中被删除。 Upgrade to Caffeine。

CRaSH支持已经被弃用,因为它不再被积极维护

在引入JmxEndpoint之后,EndpointMBeanExporter 中的几个受保护的方法已被弃用

SearchStrategy.PARENTS已经被SearchStrategy.ANCESTORS取代

Apache DBCP已弃用,取而代之的是DBCP 2

server.undertow.buffers-per-region 属性已经被废弃,因为它不再使用(see UNDERTOW-587)

@AutoConfigureTestDatabase已经从org.springframework.boot.test.autoconfigure.orm.jpa移动到org.springframework.boot.test.autoconfigure.jdbc

Property Renames

server.max-http-post-size属性已经被特定技术的变体所取代 (例如:server.tomcat.max-http-post-size)

spring.data.neo4j.session.scope属性已经被删除

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 195,783评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,360评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 142,942评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,507评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,324评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,299评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,685评论 3 386
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,358评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,652评论 1 293
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,704评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,465评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,318评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,711评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,991评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,265评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,661评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,864评论 2 335

推荐阅读更多精彩内容