Spring Boot 2 主要变化
2018-02-08 本文已影响0人
wydnpu
参考文档:
根据 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) { ... }
}
总结
变化还很多,基于时间和个人能力限制,不继续描述。但是整体来说,个人觉得最重要的变化是:
- Java8最低版本,这让Spring可以利用Java8的特性大规模重写,有效的降低开发、维护成本并提升性能。
- 对发布和生产环境更下监控管理更友好,这也是微服务趋势下的必然,Spring Cloud 从 Finchley 版本开始就是基于Spring Boot 2
- 对安全更进一步重视,同样在微服务下,错误的默认配置很容易酿成大祸,还是严格点好。