为了支持reactive使用场景,内嵌的容器包结构被重构了的幅度有点大。EmbeddedServletContainer被重命名为WebServer,并且org.springframework.boot.context.embedded包被重定向到了org.springframework.boot.web.embedded包下。举个例子,如果你要使用TomcatEmbeddedServletContainerFactory回调接口来自定义内嵌Tomcat容器,你现在应该使用TomcatServletWebServerFactory。
Servlet-specific的serverproperties调整
大量的Servlet专属的server.*properties被移到了server.servlet下:
.
由此可以看出一些端倪,那就是server不再是只有servlet了,还有其他的要加入。
Actuator默认映射
Actuator的端点(endpoint)现在默认映射到/application,比如,/info端点现在就是在/application/info。但你可以使用management.context-path来覆盖此默认值。
ConditionalOnBeanConditionalOnBean现在的判断条件由OR变为了AND。RemoteCRaSHshell
1.5的时候此远程工具被标为deprecated,2.0的时候将会把这个支持彻底remove掉,以及基于此功能的项目也会被删除掉。
SpringLoaded不再支持
由于SpringLoaded项目已被移到了attic了,所以不再支持SpringLoaded了。现在建议你去使用Devtools。SpringLoaded不再支持了。
Hazelcast自动配置不再支持
不能再自动配置HazelcastInstance进行缓存。因此,spring.cache.hazelcast.config属性不再可用。
默认connectionpool变了
默认的连接池已经由Tomcat切换到了HikariCP。如果你过去使用spring.datasource.type在基于Tomcat的应用程序中强制使用Hikari,现在你可以删除这个覆盖了。同样的,如果想要使用Tomcat的连接池,只需要简单的加入以下配置就可以了:
spring.datasource.type=org.apache.tomcat.jdbc.pool.DataSource
ServletFilters
针对一个Filter默认的dispatcher类型现在为DipatcherType.REQUEST,这样就保证了SpringBoot和Servlet默认的配置统一了。
SpringSecurity
SpringSecurity的filter现在可以自动配置如下类型了:ASYNC,ERROR,andREQUEST。这样就让SpringBoot中的配置和SpringSecurity默认配置保持一致了。
SpringSession
SpringSession的filter现在支持自动配置如下dispatcher类型ASYNC,ERROR,andREQUEST。同样是为了让SpringBoot的配置与SpringSession的默认配置保持一致。值得注意的是从SpringSession2.0起,Mongo和GemFire将不再被支持。
Jetty
要求Jetty最低版本为9.4。
Tomcat
要求Tomcat最低版本为8.5。
Hibernate
要求Hibernate最低版本为5.2。
Gradle
要求Gradle最低版本为3.4。
SendGrid
SendGrid最低支持版本是3.2。为了支持这次升级,username和password已经被干掉了。因为APIkey现在是唯一支持的认证方式。
Starter的传递依赖的改变
以前有几个SpringBootstarter是依靠SpringMVC和spring-boot-starter-web传递的。为了对SpringWebFlux的支持,spring-boot-starter-mustache和spring-boot-starter-thymeleaf不再依赖spring-boot-starter-web。现在你要自己选择并添加spring-boot-starter-web或spring-boot-starter-webflux作为依赖。
记住:web和webflux是平行的关系。我们之前的文章中提到过springwebflux。你可以移步查看:Spring5新增全新的reactiveweb框架:webflux。
Solr健康指标
针对Solr的健康检查信息不再是solrStatus这个属性了。现在是statusproperty,是一个标准状态属性,对应于一个的整型值。
默认代理策略
SpringBoot现在默认是使用CGLIB代理,同时包含AOP支持。如果你需要基于代理(proxy-based)的代理策略,你需要把spring.aop.proxy-target-class设置为false。
基于CLI的测试
从SpringBoot的CLI中删除了测试支持,现在建议你使用Maven或Gradle构建应用程序,去使用它们提供的丰富的测试支持吧。
ConfigurationPropertiesConfigurationProperties里的ignoreNestedProperties属性已被删除。Multipart配置改变
为了更好的反映Servlet的特性,spring.