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属性已经被删除