Java 10迁移建议
你好,再一次到另一个热点。 我的名字是Java Champions平台工程师兼DevOps专家Peter Pilgrim。
如您所知,Java 9引入了模块系统。 您可能正在将服务迁移到JDK 10或更高版本,或者至少在考虑中。 我对企业的一般建议是,您越早迁移,技术债务就越好。 在2018年9月发布Java 11时,更容易适应变化。
在撰写本文时,我建议在传统的单片系统上迁移作为严格的微服务编写的软件体系结构要容易得多。 为什么会这样呢? 可以一对一或定义的工作组来适应和更改微服务。 为此,您的微服务必须彼此独立,这意味着它们依赖于REST API或XML over SOAP over HTTP通信或其他远程调用协议。
迁移的最大障碍是工具,堆栈依赖项以及专有技术。 让我们对其中的每一个进行一些包装。
工具–所有主要的IDE现在都支持Java10。它们是NetBeans,Eclipse和IntelliJ2018。因此,编译基本Java程序应该没有问题。 我们大多数专业人士倾向于使用Gradle和Apache Maven等构建工具。 如果您依赖Maven,则需要更改编译器插件版本3.7.0或更高版本。 Gradle交付团队可以使用便捷的指南,其中介绍了如何为示例项目添加手动支持。 请注意,在撰写本文时,当前的Gradle发行版4.6不具有一流的支持。 不幸的是,Gradle需要花很多力气才能获得Java 9支持。 “构建Java 9模块”具有所有详细信息,如果您现在希望在团队的构建中获得Java 9模块的支持,请阅读本书。
堆栈依赖关系–最大的障碍是库的依赖关系。 如果它们是开源的,那么可能即将收到Java 9支持,并且很快就会推出。 许多专业的服务器端团队都依赖于Hibernate,Spring Framework,Spring Boot和Java EE的其他方面。 最糟糕的是,由于每个工程都依赖于其中的一个,因此实际的servlet容器可与Java 10一起使用。因此,强烈建议您亲自验证Tomcat,Payara和WildFly在Java 10运行时环境中执行。 它应在没有任何已部署WAR文件的状态下执行。 Pivotal在其最新版本的Spring Boot 2.0中已经为OpenJDK 9编写了轶事支持,您可能很幸运。
最后,从长远来看,对Java模块系统的了解会有所帮助。 因为最终所有最重要的框架和库都将被模块化,所以开发运维人员/平台工程师为什么会延迟对模块系统的学习。
工程师将不得不根据这些概念
- 拆分包 – Java 9中的每个模块都必须包含唯一的包。 工作遗留和当前代码库中的许多JAR可能都有拆分的程序包,同一程序包显示一个或多个JAR。 这可能包括开源和商业第三方库。 然后,您的主要工作是重构和重新架构您拥有的模块,第三方供应商和图书馆团队将对他们的软件负责,他们将自己做。
- 自动模块 – Java 9的这一概念自动从类路径中将JAR导出为模块
- 未命名模块 –这种将类加载到模块系统之外但从类路径加载的概念。 不属于“命名模块”成员的类被认为是称为未命名模块的特殊模块的成员
- 服务发现 – JDK 9中的服务API进行了改进,可以跨模块加载类。
- 开放式模块 –此概念允许在运行时检查模块
- 供应模块 –此概念定义模块之间的传递依赖
- 模块化资源 –这个概念定义了加载资源,现在仅限于模块。 您需要另一个模块中的资源,然后必须在module-info.java文件中明确配置
- 模块和类路径 -不幸的是,库编写者必须跨模块路径和类路径针对Java 8(非模块)和Java 10(模块)测试其代码库。 这是迁移的最大缺点。
我的第一个建议是找到这些拆分包。 我写了一段shell脚本和Python来帮助我编写一份总体报告。
就这样。 享受车程
这里是对本文内信息的引用:
- 在Gradle中构建Java 9模块
- 摇篮的状态和未来
- Spring Boot和Java 9
- 本周insSpring(2017年9月26日)
- Hibernate对Java 9的支持
- Tomcat JDK 9要求和下载
- WildFly 11和OpenJDK 9可以一起使用
翻译自: https://www.javacodegeeks.com/2018/05/migration-advice-for-java-10.html
Java 10迁移建议相关推荐
- java 迁移数据_Java 10迁移建议
java 迁移数据 你好,再一次到另一个热点. 我的名字是Java Champions的平台工程师和DevOps专家Peter Pilgrim. 如您所知,Java 9引入了模块系统. 您可能正在将服 ...
- 迁移学习_Java 10迁移建议
迁移学习 你好,再一次到另一个热点. 我的名字是Java Champions平台工程师兼DevOps专家Peter Pilgrim. 如您所知,Java 9引入了模块系统. 您可能正在将服务迁移到JD ...
- java8升级java10_Java 10 9之后就可以了; 担心Java 10在8(或更早)之后
java8升级java10 "社区只希望每3-4年更新一次Java版本" Java 10是在几周前发布的,但我们仍在剖析其最重要的功能(*咳嗽*本地变量类型推断*咳嗽*),这些功能 ...
- Java 10及更高版本的思考
大家好 Java 10于2018年3月20日发布.我认为许多软件团队将阻止升级. 从Java 8到Java 9的专业人员人数可能还更少.为什么会这样,原因是传统的障碍以及对应用程序服务器,框架甚至是云 ...
- java 迁移数据_Java 10迁移:轻而易举还是龙卷风?
java 迁移数据 "对于基础架构提供商而言,升级到最新的JDK根本不容易" Java 10是在几周前发布的,但我们仍在剖析其最重要的功能(*咳嗽*局部变量类型推断*咳嗽*)以及那 ...
- 成为最差开发者的10条建议
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 这里有个[1024]红包等你来领取 昨天在devto上面 ...
- 提升系统 10 倍性能的 10 个建议!
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 译者:为之漫笔 来源:http://www.zcfy.c ...
- Java 10将如何改变您的编码方式
突出显示Java 10中新的Java局部变量类型推断功能 早在2016年,Java社区就掀起了新的JDK增强提案(JEP): JEP 286 . 现在,两年后,局部变量类型推断可以说是Java 10中 ...
- 10倍提升应用性能的10个建议
2019独角兽企业重金招聘Python工程师标准>>> 提升Web应用的性能从未像今天这样刻不容缓.在线经济活动的比例日益提高,就连发展中国家和地区的经济活动都已经有5%以上在线进行 ...
最新文章
- 埃森哲是如何系统化做好数据分析?
- linux透明加密系统,基于Linux的透明加密系统的设计与实现
- 皮一皮:没有草原也敢买马?
- 基于MATLAB的costas载波同步+gardner时间同步,QPSK调制
- iis 不是 php,iis是不是默认支持php
- 在阿里做博士后是一种怎样的体验?
- Python3中的可变与不可变类型
- github的应用详解
- linux tomcat 改端口号,Ubuntu中Tomcat更改80端口
- VirtualBox虚拟机共享剪贴板无效之新解决思路
- 清华计算机专业培养,清华大学计算机本科生培养方案..pdf
- 读取cpu温度的api_温度读取vc++获取cpu温度
- Outlook连接Gmail不成功可以试试以下方法
- 互动多媒体 Unity 拼接屏 项目分析
- linux下载安装vlc指令,Ubuntu安装VLC播放器的步骤
- 删除用户:userdel
- TabLayout的使用详解
- 订单发货地址修改php,拼多多发货地址可以修改吗?怎么合并发货?
- 帝国CMS和PHPCMS对比随谈
- 2.古体诗的换韵和重韵
热门文章
- 25、jdbc操作数据库(2)
- 汇编语言(二十九)之数值的二进制和十进制
- 京东购物车的 Java 架构实现及原理
- Spring入门(三)之IoC
- publiccms中,怎么修改默认的端口8080以及默认上下文名称
- “看起来你每天都要做好多事,你有时间吗?”
- 全自动安装 linux光盘,CentOS 7.1全自动安装光盘制作详解
- 计量经济学自相关matlab,计量经济学 自相关性.ppt
- mysql的on和in用法_数据库中in、on、with的用法及示例。
- ubuntu ifconfig_Ubuntu 设置固定 IP 最简单的方法!