根据 Spring Boot的
milestones
,2018年2月底就将发布,因为在研究spring cloud,顺便梳理下Spring Boot 2 的主要变化。
Java8及以上
Spring Boot 2将不在支持Java6和7,Java8是基线。Java9也会全面兼容。1.x版本不会支持Java9
多余的话,软件领域技术更新其实非常快,我在面试Java开发人员时,发现很多人对Java8依然没有任何了解。但是从业界看来,Java8已经是基线版本了。
Java生态支持升级
这当然是必然的。官方文件中有描述,简单罗列几个主要的:
Jetty >= 9.4
Tomcat >= 8.5
Hibernate >= 5.2
Gradle >= 3.4
国内mybatis用的比较多,mybatis已经在支持springboot2了
milestone
Spring Framework 5.0
Spring Boot 2基于Spring5
Gradle插件修改
Spring Boot的Gradle插件做了很多改进,可参考官方文档:
gradle-plugin
为了灵活,插件默认不在提供spring依赖管理,需要额外配置:
apply plugin: 'io.spring.dependency-management'
支持Reactive
目前已经提供了对Redis\MongoDB\Cassandra\Couchbase支持
spring-reactive-sample
安全全面升级
默认情况下,所有数据都是安全的,包括静态文件和Actuator端点。
看到403, 那大概是忘记配置Security了。
生产环境支持
Spring Boot Actuator得到极大的提升
web框架
同时支持WebFlux、Jersey、Spring-MVC,之前只支持Spring-MVC
支持自定义端点
如下,可以创建一个 fruits 的监控端点
@Endpoint(id = "fruits")
public class FruitsEndpoint {
@ReadOperation
public Map<String, Fruit> fruits() { ... }
@WriteOperation
public void addFruits(@Selector String name, Fruit fruit) { ... }
变化还很多,基于时间和个人能力限制,不继续描述。但是整体来说,个人觉得最重要的变化是: