==========================
版本选择的原则:
==========================
1. 优先选择官方指定的long-term support(LTS)版本, 非LTS版本往往会引入较多实验性的特性, 稳定性要比LTS要差一些, LTS版本生命周期甚至会比晚发行的非LTS版更长久.
2. 优先选择纯粹的bugfix版, 而不是那种有引入新特性的版本.
3. 如果不想跟最新的技术, 选择上一个大版本的最后一个小版本, 这个小版本往往是一个比较稳定的版本, 比如Spring framework 当前版本是5.1, 我们可以选择 4.3.22. 这里推荐使用 mvnrepository.com 网站找到这个小版本.
比如, spring framework 版本清单: https://mvnrepository.com/artifact/org.springframework/spring-core
再如, spring boot 版本清单: https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter

==========================
jdk 版本选择:
==========================
jdk 8是 LTS 版, 下一个LTS版是 jdk 11, 从当前技术普及来看, 主流的仍是jdk8.
按照Oracle 官方的说法, Jdk 8u191/Jdk 8u192 Oracle官方同时推出的两个最后免费jdk 8发行版, 这之后的java 8发行版理论上都需要付费. 对于 8u191 和 8u192, 更推荐使用 8u191 版. 原因是: 奇数编号的发行版仅包含经验证的bug fix, 偶数编号的发行版不含经验证和非经验证的改进, 所以生产环境推荐使用奇数编号的发行版.

ps, jdk 10是一个很特别的版本, 它是第一个真正移除deprecated code的版本, 之前的jdk实际上并没有真正移除那些过期api.

版本选择: jdk 版本应该选择jdk 8u191.

==========================
Spring Boot 版本
==========================
目前 Spring Boot 有三个重要分支: 1.5.x 和 2.0.x 和 2.1.x, 注意它们是三个分支, 比如 v2.1.1 并不能算作是 v2.0.8 的升级版, 实际上v2.1.1是早于 v2.0.8 版发布的, 这一点可以从发布历史中得到验证, 见 https://github.com/spring-projects/spring-boot/tags

Spring Boot 官方只是在一些官方的blog中零星提及某些版本的EOL, 没有各版本maintenance roadmap.

下面是目前主要分支的EOL:
(1) 1.5.x 分支(主要依赖Spring framework 4.3), 将于2019年8月EOL, Spring framework 4.3.22 预计在2020年中EOL.
(2) 2.0.x 分支(主要依赖Spring framework 5.0.x), 将跟随Spring 5.0.x 在2019年3月EOL.
(3) 2.1.x 分支(主要依赖Spring framework 5.1.x), 目前没有设定EOL日期, 但Spring framework 5.1应该不是一个longer-lived 版本, 所以 2.1.x 分支的支持期应该也不会很长. 预计下一个基于 Spring framework 5.2 的Spring boot分支才是真正的longer-lived 版.

版本选择: 官方建议使用v2.1.x版本, 但基于上面的简单分析, Spring Boot 版本选择就比较尴尬, 目前没有一个版本特别合适最新的生产项目的开发, 好在2.1.x的最新版2.1.3是一个 bugfix 版, 所以推荐暂时采用2.1.3版.

Spring framework 各版支持时间:
https://github.com/spring-projects/spring-framework/wiki/Spring-Framework-Versions

Spring boot 各版的release note:
https://github.com/spring-projects/spring-boot/wiki

Jdk和Spring Boot版本选择的更多相关文章

  1. Spring Boot 版本支持对应JDK

    转自:http://www.cnblogs.com/oumi/p/9241424.html 一.Spring Boot 版本支持 Spring Boot Spring Framework Java M ...

  2. Spring Cloud与Spring Boot版本匹配关系

    Spring Cloud是什么? “Spring Cloud provides tools for developers to quickly build some of the common pat ...

  3. 【Spring Cloud】与Spring Boot版本匹配关系

    Spring Cloud版本演进情况如下: 版本名称 版本Finchley snapshot版Edgware snapshot版Dalston SR1 当前最新稳定版本Camden SR7 稳定版本B ...

  4. Spring Boot 版本支持

    一.Spring Boot 版本支持 Spring Boot Spring Framework Java Maven Gradle 1.2.0之前版本   6 3.0+ 1.6+ 1.2.0 4.1. ...

  5. Spring Boot版本,Spring Cloud版本与组件版本关系

    我们在学习Spring Cloud时,可能总是碰到以下问题: 1.Spring Boot版本与Spring Cloud版本关系 2.启动时,报莫名其妙的错,稀里糊涂的换个版本就好了 3.这么多版本,用 ...

  6. spring boot和spring cloud版本选择

    SpringBoot版本介绍 官网链接:https://spring.io/projects/spring-boot#learn Spring Boot的版本以数字表示.例如:Spring Boot ...

  7. spring cloud 与spring boot 版本不匹配引发的问题总结

    为了将前期项目慢慢转移到微服务上,今天开始搭建eureka服务时,出现以下错误: org.springframework.context.ApplicationContextException: Un ...

  8. Spring Boot 容器选择 Undertow 而不是 Tomcat

    Spring Boot 内嵌容器Undertow参数设置 配置项: # 设置IO线程数, 它主要执行非阻塞的任务,它们会负责多个连接, 默认设置每个CPU核心一个线程 # 不要设置过大,如果过大,启动 ...

  9. 在依赖的框架中已经有统一异常处理的情况下,如何定制自己的统一异常处理spring boot版本

    spring boot 环境下的统一异常处理大家已经非常熟悉了,不熟悉的化可以参考 <<Spring Boot中Web应用的统一异常处理>>.公司内部的统一异常处理如下: @E ...

随机推荐

  1. MyDAL - 快速使用

    索引: 目录索引 一.安装 在 VS 中执行一下 package 命令: PM> Install-Package MyDAL 二.API-快速使用 1.命名空间,只需: using MyDAL; ...

  2. zabbix监控交换机状态

    1.在Zabbix中添加主机 输入名称.群组和交换机IP(交换机要开启snmp) 2.创建监控项 输入OID和其它信息(键值随便填,但是不能和系统内的键值重复)OID获取方法可查看上一篇文章:http ...

  3. NT路径,DOS路径和Device路径互相转换

    项目中遇到的比较奇葩的问题,从网上找到一份源码,https://blog.csdn.net/qq125096885/article/details/70766206 稍微整理了下,VS可以直接编译 # ...

  4. linux 系统shell运行程序不退出

    如果通过ssh远程连接到linux系统终端,在shell下执行程序.假如程序名称为app,且程序本身会一直执行不退出,程序执行需要参数文件paramfile. 当我们用 ./app paramfile ...

  5. c++字节对齐编译器指令#pragma

    第一种 #pragma pack(push, 1) // 先把当前对齐设置压栈,再设置为1字节对齐 struct S { char a; ]; }; #pragma pack(pop) // 恢复先前 ...

  6. 对const的总结与思考

    今天偶然想起const这一关键字,再加之以前几种const修饰指针方式让我印象深刻(混淆不清),重新回顾了一下,自己对这个关键词也又有了更加深刻的理解,所以总结一下. 一.const的定义 const ...

  7. 文本相似度 — TF-IDF和BM25算法

    1,$TF-IDF$算法 $TF$是指归一化后的词频,$IDF$是指逆文档频率.给定一个文档集合$D$,有$d_1, d_2, d_3, ......, d_n \in D$.文档集合总共包含$m$个 ...

  8. myeclipse新建javaweb项目,并部署到tomcat

    myeclipse使用的版本: 新建web项目: File-->New-->Web Project,输入项目名称,选择J2EE规范. 完成后: JRE System Library是只要做 ...

  9. ecshop 商品属性显示方法

    功能:在商品列表上,点击放大镜,显示商品所有属性以及其价格,效果如下: 方法/步骤: 1.编辑\admin\templates\goods_list.htm 模板,在 <!-- 商品搜索 --& ...

  10. NodeJs操作MongoDB之多表查询($lookup)与常见问题

    NodeJs操作MongoDB之多表查询($lookup)与常见问题 一,方法介绍 aggregate()方法来对数据进行聚合操作.aggregate()方法的语法如下 1 aggregate(ope ...