Spring Boot 2 主要变化

参考文档:

  1. new-spring-boot-2
  2. Spring-Boot-2.0.0-M1-Release-Notes
  3. Spring-Boot-Milestones

根据 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生态支持升级

这当然是必然的。官方文件中有描述,简单罗列几个主要的:

  1. Jetty >= 9.4
  2. Tomcat >= 8.5
  3. Hibernate >= 5.2
  4. Gradle >= 3.4
  5. 国内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 fruits() { ... }
 
    @WriteOperation
    public void addFruits(@Selector String name, Fruit fruit) { ... }
}

总结

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

  1. Java8最低版本,这让Spring可以利用Java8的特性大规模重写,有效的降低开发、维护成本并提升性能。
  2. 对发布和生产环境更下监控管理更友好,这也是微服务趋势下的必然,Spring Cloud 从 Finchley 版本开始就是基于Spring Boot 2
  3. 对安全更进一步重视,同样在微服务下,错误的默认配置很容易酿成大祸,还是严格点好。

你可能感兴趣的:(Spring Boot 2 主要变化)