根据 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) { ... }
    

    变化还很多,基于时间和个人能力限制,不继续描述。但是整体来说,个人觉得最重要的变化是:

  •