美文网首页
Spring boot各版本特性

Spring boot各版本特性

作者: 三无架构师 | 来源:发表于2021-05-15 10:43 被阅读0次

    以下供技术升级所使用。建议使用2.3.x或2.4.x。

    一、Spring boot各版本特性

    2.2.X

    • 性能提升
      • 默认禁用JMX: 缩短应用启动时间,减少资源浪费。
      • 延迟初始化:通过spring.main.lazy-initialization属性启用全局延迟初始化,以减少启动时间
      • 禁用其他JPA扫描改善了启动性能:SpringBoot已提供了自己的JPA扫描。
      • 大型配置文件绑定更快
      • 更高效的bean创建和注入
    • 支持Java 13
    • @ConfigurationProperties注解的类被初始化为bean
    • RSocket支持
    • 支持Gradle 6
    • 支持第三方类上的构造器参数绑定
    • 依赖变化:
      • 所有JavaEE依赖项用等效的Jakarta EE依赖替换。
      • Spring Framework 5.2
      • JUnit 5
      • 其它依赖包升级
    • 配置更改:如
      • logging.file属性已重命名为logging.file.name
      • logging.path属性已重命名为logging.file.path

    2.3.X

    • 优雅停机:在关闭时,服务器将不再允许新的请求,并将等待完成的请求给个宽限期让它完成,可以通过spring.lifecycle.timeout-per-shutdown-phase=xxx来配置,默认为30s, 默认情况下,没有开启,通过添加server.shutdown=graceful配置开启。
    • 配置属性的调整:可通过spring-boot-properties-migrator依赖打印替换日志
    • 删除不推荐使用的类/方法/属性
    • 配置文件位置支持通配符:如/config/*/只支持jar包外
    • web下的日期转换支持配置:
      • spring.mvc.format.date
      • spring.mvc.format.date-time
      • spring.mvc.format.time
      • spring.webflux.format.date
      • spring.webflux.format.date-time
      • spring.webflux.format.time
    • 依赖升级
      • 核心依赖升级:
      • 第三方类库升级:
    • 支持Java 14
    • 嵌入式Servlet Web Server线程配置:server.xx.threads.max
    • WebFlux基础路径配置:支持spring.webflux.base-path=xx
    • 服务可用性探针:management.health.probes.enabled=true
    • Actuator增强:
    • docker容器支持:
      • 支持Cloud Native Buildpacks构建镜像
      • maven 插件 增加 spring-boot:build-image 、gradle增加bootBuildImage task 帮助快速构建镜像
      • 支持jar 分层,更好的优化打包镜像过程

    2.4.X

    • 版本命名更改:去除了RELEASE后缀
    • 支持Java 15
    • Junit 5移除了Vintage Engine
    • 配置数据导入:通过spring.config.locationspring.config.import明确指定配置位置,如果不存在,则不会静默失败,如果想忽略不存在,则在前面加optional,如:spring.config.location=optional:/etc/config/application.properties,如果想把所有位置都当作optional,可以设置spring.config.on-not-found=ignore
    • 嵌入数据库改进:只有在内存中才认为数据库是嵌入式的。
    • 不再注册servlet容器提供的DefaultServlet
    • HTTP traces不再包含Cookie请求头和Set-Cookie响应头
    • 构建jar自动优化,自动删除空的starter
    • 全新的cron定时任务支持:@yearly, @annually, @monthly, @weekly, @daily, @midnight, @hourly
    • 依赖升级:
      • Spring Framework 5.3
      • Spring Kafka 2.6
      • 第三方依赖升级
        • Undertow 2.2
        • Lettuce 6.0
        • JUnit 5.7
    • Docker支持升级:
      • 镜像发布:Spring Boot Maven 插件的 spring-boot:build-image 指令和 Gradle 插件的 bootBuildImage 任务现在可以直接发布 Docker 镜像到 Docker 注册中心了
      • 授权机制:使用私有授权的 Docker 私有注册中心,支持用户名/密码认证以及基于 Token 机制认证。
      • 默认支持分层jar,减少容器镜像构建

    2.5.X

    • 运行端点变更
      • /info不再对外公开
      • 优雅关机支持GET请求
      • 记录停机日志
      • 增加Quartz的Actuator Endpoint: /actuator/quartz
    • 增强容器化功能
      • war包支持分层
      • buildpack支持配置自定义
    • Environment前缀:以便在同一环境运行多个不同的应用,使用SpringApplication.setEnvironmentPrefix(…)设置绑定属性时要使用的前缀。
    • Metrics增强
    • HTTP/2 over TCP(h2c): 只需将server.http2.enabled设置为 true并将 server.ssl.enabled设置为false(默认 false)。微服务全栈 h2c 还需要打通 feign 和 RestTemplate 这种 http 客户端
    • 数据源相关增强:

    二、细节

    优雅停机

    其生效,但其触发后,不再接收新请求,在使用slb时比较方便,但使用eureka时,该方式仍然不够优雅,因为其它服务仍然能看到该服务,但该服务又不可用。

    其只解决了当前请求完整性

    版本支持时间

    • 2.4.x: 支持的版本。2020.11发布,支持到2022.08
    • 2.3.x: 支持的版本。2020.05发布,支持到2022.02
    • 2.2.x:支持的版本。2019.10发布,支持到2021.07
    • 2.1.x:生命已终止的版本。2018.10发布,于到2020.10月停止维护
    • 2.0.x:生命已终止的版本。2018.3发布,2019.4停止维护
    • 1.5.x:生命已终止的版本。2017.1发布,是最后一个1.x分支,2019.8.1停止维护

    相关文章

      网友评论

          本文标题:Spring boot各版本特性

          本文链接:https://www.haomeiwen.com/subject/tiuhjltx.html