一直以来,Java8都是Java社区心头的痛。因为它代表着以稳定性为主的企业管理层,与拥抱变化为主的底层码农层之间的、爱的魔力拉锯战。
不生!少生!成为各大厂心照不宣的选择。
现在,这种平衡或将打破。因为Java届的霸主框架SpringBoot,选择了最小支持的Java lts版本,就是最新的Java17。
坚信Java8成为永恒的同学,该用尿滋醒一下了。
怎么办?
到底用不用新的版本,这其实并没有什么意义。有需求才有变化,为了追求升级而升级,那是脑残才干的事。当广大从业者,越来越了解到自己是一个工具人的时候,就会放弃这些无意义的操作。
只有两种情况,无意义才会变成有意义。
第一,是卷到极致的时候,不痛不痒的版本升级就会进入你的任务列表。第二,是落后社区太多的时候,羞愧感加上功能的驱使会让你选择升级。不过这也并不是绝对,因为如果你是管理层,脏活自然会有人干,你也不会有这么大的动力。
哪些改变?
还是先回到正题,看一下SpringBoot3都有哪些改变吧。
首先。
再次强调一下,SpringBoot3将强力合体Java17,采用全新的Spring6版本,Maven支持也提高到了3.5、Gradle提高到了7.3。版本管理器默认也换成了grandle,grandle的下载速度,国内要肉痛一下了。
再次。
虽然我们现在使用JavaEE的功能越来越少,但很多巨无霸商业企业还是依然坚守着打下的江山。自从JavaEE改名为Jakarta EE,Jakarta EE9版本迎来了更大的改动,连javax这种包名都给改了(2019及以后)。SpringBoot3一琢磨,假如不追上的话,恐怕后面很快就要出SpringBoot4了,所以Jakarta EE的版本,也切成了9。
Jakarta是印尼首都雅加达,与斯巴达只差两字的距离。Jakarta EE 9 的版本应由 Eclipse Glassfish,Apache TomEE,Wildfly,Oracle WebLogic,JBoss 和 IBM Websphere Liberty 实施,并使用 Jakarta EE 的标志。
这通常没什么影响,因为新时代的互联网人,使用JavaEE的功能越来越少,就连JavaSE都嫌臃肿,所以这对很多人并没有什么影响。我建议你如无必要,永远不要使用它,因为里面全是坑哈哈。
其次。
移除了一些老掉牙的东西,比如 Apache ActiveMQ、Atomikos、EhCache 2、Hazelcast 3等。Apache ActiveMQ这种老掉牙的东西,实在是不推荐新项目使用了,高并发下它坑死了老多人;Hazelcast也在Redis的进攻下节节败退,虽然用上了先进的Raft也颓势尽显。
这些不入流的东西们,最好的存在方式就是各种stater,而不是放在core包里面。
同样被移除的还有下面这些:
- EhCache 3
- H2’s web console
- Hibernate’s metrics
- Infinispan
- Jolokia
- Pooled JMS
- REST Assured
这些名词背后,充满了商业的腐朽味道,以及销售的嘴脸和被忽悠的懵逼的老板们。
怕不怕?
现在SpringBoot3还是M1版本,Spring Boot团队将每两个月发布一个新的里程碑版本,所以M2版本预计将在3月24日发布。
其实,大家都不怕软件不更新,也不怕经过实践过的更新,最怕项目出生在这种不生不死的间隔时间。选新的吧,功能不稳定,要背锅;选旧的吧,心里不痛快,未来总有一天还得升级。
所以大多数时候,时间就在这犹犹豫豫中流逝了。
保持系统的纯洁性,是一个非常好的习惯。哪怕官方为你贴心的提供了很多扩展功能,也不要随随便便去使用,否则你将尝到背叛的味道。
当然,一个普通程序员职业生涯,被定格在35岁的年代,在新时代农民工论调的大背景下,你并不需要为其他的阶级去着想,除非它影响到了你的面包。
作者简介:小姐姐味道 (xjjdog),一个不允许程序员走弯路的公众号。聚焦基础架构和Linux。十年架构,日百亿流量,与你探讨高并发世界,给你不一样的味道。