Jdk和Spring Boot版本选择
==========================
版本选择的原则:
==========================
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版本选择的更多相关文章
- Spring Boot 版本支持对应JDK
转自:http://www.cnblogs.com/oumi/p/9241424.html 一.Spring Boot 版本支持 Spring Boot Spring Framework Java M ...
- Spring Cloud与Spring Boot版本匹配关系
Spring Cloud是什么? “Spring Cloud provides tools for developers to quickly build some of the common pat ...
- 【Spring Cloud】与Spring Boot版本匹配关系
Spring Cloud版本演进情况如下: 版本名称 版本Finchley snapshot版Edgware snapshot版Dalston SR1 当前最新稳定版本Camden SR7 稳定版本B ...
- Spring Boot 版本支持
一.Spring Boot 版本支持 Spring Boot Spring Framework Java Maven Gradle 1.2.0之前版本 6 3.0+ 1.6+ 1.2.0 4.1. ...
- Spring Boot版本,Spring Cloud版本与组件版本关系
我们在学习Spring Cloud时,可能总是碰到以下问题: 1.Spring Boot版本与Spring Cloud版本关系 2.启动时,报莫名其妙的错,稀里糊涂的换个版本就好了 3.这么多版本,用 ...
- spring boot和spring cloud版本选择
SpringBoot版本介绍 官网链接:https://spring.io/projects/spring-boot#learn Spring Boot的版本以数字表示.例如:Spring Boot ...
- spring cloud 与spring boot 版本不匹配引发的问题总结
为了将前期项目慢慢转移到微服务上,今天开始搭建eureka服务时,出现以下错误: org.springframework.context.ApplicationContextException: Un ...
- Spring Boot 容器选择 Undertow 而不是 Tomcat
Spring Boot 内嵌容器Undertow参数设置 配置项: # 设置IO线程数, 它主要执行非阻塞的任务,它们会负责多个连接, 默认设置每个CPU核心一个线程 # 不要设置过大,如果过大,启动 ...
- 在依赖的框架中已经有统一异常处理的情况下,如何定制自己的统一异常处理spring boot版本
spring boot 环境下的统一异常处理大家已经非常熟悉了,不熟悉的化可以参考 <<Spring Boot中Web应用的统一异常处理>>.公司内部的统一异常处理如下: @E ...
随机推荐
- CTF杂项之音频隐写
题目来自bugku 二话不说,直接上图 由题目可以看出,这题需要用到一个KEY,加上又是一段音频,很容易联想到一个著名的音频隐写解密软件Mp3stego 直接上工具 ok,成功Get Flag
- windows server 2012 R2 部署AD域服务
一.部署AD域控制器 首先,我们检查第一台已经安装Windows Server 2012 R2的服务网络的相关配置,确定的服务器IP地址.子网掩码.默认网关的参数如下,由于该服务器既要充当ADDC角色 ...
- dig请求和回应中的参数解释
; <<>> DiG 9.9.5-3ubuntu0.6-Ubuntu <<>> baidu.com dig这个程序的版本号和要查询的域名 ;; glob ...
- Effective C++ 第0章 explicit构造函数
按照默认规定,只有一个参数的构造函数也定义了一个隐式转换,将该构造函数对应数据类型的数据转换为该类对象,如下面所示: class String { String ( const char* p ); ...
- Vue (三) --- Vue 组件开发
------------------------------------------------------------------好心情,会让你峰回路转. 5. 组件化开发 5.1 组件[compo ...
- 三十九、vue中element最原始的分页(未封装的)
html<el-table ref="scoreUserTable" :data="scorePageUser.slice((currentPage1-1)*pag ...
- JMeter_JDBC 性能测试
用JMeter做JDBC测试配置步骤: 1.测试计划中添加mysql-connector-java-5.1.41-bin.jar 注意: 这里需要注意的是,在不同的环境(Windows或Linux)下 ...
- 使用py,根据日志记录自动生成周报
日志格式如下,思路是如果检测到文件中的内容为5位或者8位,即12.11或18.12.11,同时存在.即认为当前行为日期数据仅作为方便查看日志使用,生成脚本时过滤此行.每次读取到空白行的时候则认为下一条 ...
- WMI入门教程之WMI中的类在哪里?
Powershell专栏: https://www.jb51.net/list/list_234_1.htm https://www.pstips.net/get-wmiobject-becomes- ...
- Ubutun 16.04添加操作命令审计
1.启用/var/log/messages,监控系统命令 说明:由于需要把操作命令记录到/var/log/messages,但是ubuntu默认并没有开启日志写入到这个文件 tchua@ubuntu: ...