==========================
版本选择的原则:
==========================
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. Dell服务器U盘安装Windows Server时识别不到硬盘

    Dell服务器U盘安装Windows Server时识别不到硬盘 1.下载驱动http://downloads.dell.com/FOLDER03688531M/1/SAS-RAID_Driver_T ...

  2. c++ primer plus 第二章 \n与endl在输出上的区别

        在书上看到如下一段话:     一个差别是,endl确保程序继续运行前刷新输出(将其立即显示在屏幕上):而使用"\n"不能提供这样的保证,这意味着在有些系统中,有时可能在您 ...

  3. 有关CSS的overflow和border-radius的那些事,你的圆角被覆盖了吗?

    事件起因 最初是网友的一个提问,来自于我的知识星球社区: 说实话,不得不佩服这个网友的眼力,这么小的细节都能发现.不过这也正是 FineUI 一直前进的动力,来自社区的监督和促进. 从截图上看,貌似圆 ...

  4. Git-删除文件后找回-比较文件差异

    #前提:删除前,文件存在是的状态提交到了本地库#操作: git reset --hard 指针位置 删除操作已近提交到本地库:指针指向历史记录 linxianli@VM-QS- MINGW64 /c/ ...

  5. 一入OI深似海 3 —— 纪念我最后一次PJ(上)

    其实在比赛前一天中午上车前, 我还在机房打 I wanna, 感觉就是去杭州旅游的. 诶,还真是这样! 我和jwj在绍兴服务区买了金拱门, 拎着吃的回到车上的时候, 迎面而来羡慕的小眼神. 下午很早就 ...

  6. jmeter学习记录--04--Beanshell

    一.什么是Bean Shell BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法;BeanShell是一种松散类型的脚本语言(这点和JS类似); BeanSh ...

  7. [转帖]deb包转化为rpm包

    deb包转化为rpm包 https://www.cnblogs.com/noxy/p/6371399.html 改天尝试一下之前经常遇到能下载deb包 下载不到rpm包的情况. deb文件格式本是ub ...

  8. 判断一个点是否在某个区域内。百度,高德,腾讯都能用。(php版)

    <?php // *** 配置文件(表示区域的三维数组)其内的点,必须按顺时针方向依次给出! $area = array( // 天通苑店 0 => array( array('x'=&g ...

  9. LeetCode136.只出现一次的数字

    给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次.找出那个只出现了一次的元素. 说明: 你的算法应该具有线性时间复杂度. 你可以不使用额外空间来实现吗? 示例 1: 输入: [ ...

  10. 手指向上滑动跳转页面的JQ方法

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...