程序员it那点事

springboot2你准备好了么

2018-04-28  本文已影响0人  QIN_87e1

springboot2 发布之后,您是否准备好升级到2.0呢,升级的优势在哪?要注意哪些问题?

一,springboot的优势

传统的java项目大多以spring容器融合其他orm框架进行开发,配置繁琐,容易出错。springboot的出现在很大程度上提高了开发效率:

1.自动化配置:Spring Boot为每一个Starter都提供了自动化的Java配置类,用来替代我们传统Spring应用在XML中繁琐且并不太变化的Bean配置;同时借助一系列的条件注解修饰,使得我们也能轻松的替换这些自动化配置的Bean来进行扩展。

2.简化依赖管理:在Spring Boot结合maven提供了一系列的Starter POMs,将各种功能性模块进行了划分与封装,让我们可以更容易的引入和使用,有效的避免了用户在构建传统Spring应用时维护大量依赖关系而引发的JAR冲突等问题。

3.嵌入式容器:除了代码组织上的优化之外,Spring Boot中支持的嵌入式容器也是一个极大的亮点,借助这个特性使得Spring Boot应用的打包运行变得非常的轻量级,也方便了开发的调试。

4.生产级的监控端点:spring-boot-starter-actuator的推出可以说是Spring Boot在Spring基础上的另一个重要创新,为Spring应用的工程化变得更加完美。该模块并不能帮助我们实现任何业务功能,但是却在架构运维层面给予我们更多的支持,通过该模块暴露的HTTP接口,我们可以轻松的了解和控制Spring Boot应用的运行情况。

当然还有很多其他的特性,例如非常方便对外提供rest接口等。

Springboot2又有哪些新特性呢?

1.对HTTP/2的支持。HTTP/2对每个服务器只使用一个连接,而不是每个文件一个连接。这样,就省掉了多次建立连接的时间,这个时间对TLS尤其明显,对于使用SSL/TLS的网站能够显著地提升性能。

2.基于Spring 5构建,Spring的新特性均可以在Spring Boot 2.0中使用。spring 5 使用了很多jdk 8 的新特性,支持 jdk 8和jdk 9.需要注意的是,最低版本要求 jdk 8+,tomcat 8.5+,Hibernate5.2+,Thymeleaf3+,不再支持的组件有Portlet(以前老门户网站会用到),Velocity(模板),JasperReports(报表),XMLBeans等。

3.新增了更灵活的属性绑定API(可以不通过@ConfigurationProperties注解就能实现配置内容读取和使用)

4.对Spring Security整合的简化配置、Gradle插件的增强、Actuator模块的优化等

在Spring Boot 2.0的升级过程中,可能这部分内容将是大家要做出较多修改的地方,所以建议大家在这里留个心眼。由于Spring Boot在构建Starter POMs的时候并非是扁平的一层结构,一些功能模块Starter之间是存在包含引用关系的,比如:spring-boot-starter-thymeleaf中包含了spring-boot-starter-web,因为thymeleaf模版引擎之前肯定是在Spring MVC下使用的。但是,在Spring Boot 2.0中,WebFlux的出现对于Web应用的解决方案将不再唯一,因此spring-boot-starter-thymeleaf中的依赖就不在包含spring-boot-starter-web,开发人员需要自己添加spring-boot-starter-web或spring-boot-starter-webflux来决定是使用哪个模块实现Web应用。

除了类似上面的依赖重组之后,在Spring Boot 2.0中对于配置属性的重定位也是比较多的,这将导致一些原有的配置将不再生效,需要我们手工的去修改这些配置的Key来完成升级适配。比如,一些与servlet相关的server.*属性重定位到server.servlet前缀下:

Old propertyNew property

server.context-parameters.*server.servlet.context-parameters.*

server.context-pathserver.servlet.context-path

server.jsp.class-nameserver.servlet.jsp.class-name

server.jsp.init-parameters.*server.servlet.jsp.init-parameters.*

server.jsp.registeredserver.servlet.jsp.registered

server.servlet-pathserver.servlet.path

更多的依赖变化、配置重定位以及默认配置的变化,读者可自行查阅官方升级手册:Spring Boot 2.0 Migration Guide

二,对应微服务套件spring cloud 版本的变化

上一篇下一篇

猜你喜欢

热点阅读