以Java8为基准
SpringBoot2.0要求Java版本必须8以上,Java6和7不再支持。
内嵌容器包结构调整
为了支持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默认映射
ctuator的端点(endpoint)现在默认映射到/application,比如,/info端点现在就是在/application/info。但你可以使用management.context-path来覆盖此默认值。
SpringLoaded不再支持
由于SpringLoaded项目已被移到了attic了,所以不再支持SpringLoaded了。现在建议你去使用Devtools。SpringLoaded不再支持了。
支持QuartzScheduler
SpringBoot2针对Quartz调度器提供了支持。你可以加入spring-boot-starter-quartzstarter来启用。而且支持基于内存和基于jdbc两种存储。
OAuth2.0支持
SpringSecurityOAuth项目中的功能将会迁移到SpringSecurity中。将会OAuth2.0。
支持SpringWebFlux
WebFlux模块的名称是spring-webflux,名称中的Flux来源于Reactor中的类Flux。该模块中包含了对反应式HTTP、服务器推送事件和WebSocket的客户端和服务器端的支持。对于开发人员来说,比较重要的是服务器端的开发,这也是本文的重点。在服务器端,WebFlux支持两种不同的编程模型:第一种是SpringMVC中使用的基于Java注解的方式;第二种是基于Java8的lambda表达式的函数式编程模型。这两种编程模型只是在代码编写方式上存在不同。它们运行在同样的反应式底层架构之上,因此在运行时是相同的。WebFlux需要底层提供运行时的支持,WebFlux可以运行在支持Servlet3.1非阻塞IOAPI的Servlet容器上,或是其他异步运行时环境,如Netty和Undertow。
版本要求
Jetty
要求Jetty最低版本为9.4。
Tomcat
要求Tomcat最低版本为8.5。
Hibernate
要求Hibernate最低版本为5.2。
Gradle
要求Gradle最低版本为3.4。
SendGrid
SendGrid最低支持版本是3.2。为了支持这次升级,username和password已经被干掉了。因为APIkey现在是唯一支持的认证方式。
想了解更多精彩内容,快来