写点什么

Spring Migration Analyzer:从 Java EE 到 Spring 转换的工具

  • 2013-01-02
  • 本文字数:970 字

    阅读完需:约 3 分钟

SpringSource 已经发布了第一个里程碑版本的 Spring Migration Analyzer 。这是一个辅助类的应用程序,它会扫描 JavaEE 构件并生成一个简要的报表,在这个报表中包含了如果这个应用程序要迁移到 Spring 时要特别注意的 API 和类。这个报表有助于做出迁移评估,因为它可以作为估计迁移难度的工具。

Spring Migration Analyzer 是作为命令行工具提供的,它可以运行在安装了 JVM 的操作系统之上(它只会使用 Java)。它以已存应用程序的二进制部署文件(如 war 或 ear)作为输入并产生一个 HTML 的输出报表(在单独的目录中)。这个报表包含了探查到的 JavaEE 技术列表以及将其迁移到 Spring/Tomcat 所需工作的建议。页面上会有一个整体概览区域,你可以点进去查看每个类会如何影响迁移工作(如果他们使用了特定的 JavaEE API 的话)。会考虑到的技术包括:

以下是一个示例报表:(点击放大)

Spring Migration Analyzer 也会探测到一些其他的特性如 EJB 的类型(如 Session 还是 Entity)、Spring 库、供应商特定的部署描述符甚至编码中使用的事务。对于探测到的每一项技术都会有文字来描述在进行 Spring 迁移时要怎么做。报表还包含了应用程序中每个类的结构如域、方法、java 导入以及抛出的异常等。

但需要注意的是,如果按照默认配置运行 Analyzer 的话,你会得到很多错误的结果。这主要是因为它处理的是二进制构件而不是源码,它不会区分应用程序的实际代码和外部类库的代码。理想情况下,报表中要排除外部类库而只关心开发人员创建的源码(就像其他的软件报表工具所处理的代码一样,这样的工具如单元测试、代码覆盖率以及质量检查等)。

例如,一个使用 Logback 来记录日志的应用程序会报告它使用了 JMS:

但源码中并没有 JMS 的代码,这只是因为 logback 二进制包中导入了 JMS,因为它支持将 JMS 作为日志目标。因此为了得到更为有意义的结果,你要使用“exclude”命令行分支来忽略外部类库(如 /WEB-INF/lib 目录)。并且输出目录不能与输入目录相同。

因此,尽管在理论上工具的这个命令行分支是可选的,但实际上它是必需的。总之,以目前的状态Spring Migration Analyzer 是一个有用的主意,但是为了避免向用户产生错误的报表还需要一些调整。

想得到更多信息的话,可以查看文档以及当前的缺陷列表。它的源码托管在 GitHub 上。

2013-01-02 06:522368

评论

发布
暂无评论
发现更多内容

UPS设备在物流机房中的应用浅析 | 京东物流技术团队

京东科技开发者

机房管理 企业号 7 月 PK 榜 UPS

并发编程-CompletableFuture解析 | 京东物流技术团队

京东科技开发者

并发编程 CompletableFuture JDK1.8 企业号 7 月 PK 榜

河北幸福消费金融基于 Apache Doris 构建实时数仓,查询提速 400 倍!

SelectDB

数据库 大数据 数据分析 后端 Doris

PoseiSwap 即将开启质押,利好刺激下 POSE通证短时涨超 30%

西柚子

【落下帷幕】2023 中国大学生计算机设计大赛大数据应用大类国赛评审

ModelWhale

云计算 数据分析 在线编程 数据科学竞赛 中国大学生计算机设计大赛

如何开发一对一视频源码

山东布谷网络科技

App 源代码

【7.21-7.28】写作社区优秀技术博文一览

InfoQ写作社区官方

热门活动 优质创作周报

ChatGPT下程序员应该何去何从?

小魏写代码

ChatGPT 新手用ChatGPT

信创产业未来发展如何

小魏写代码

信创 信创产业

电子科技大学入驻飞桨AI Studio高校专区,AI优质课程等你来学!

飞桨PaddlePaddle

人工智能 百度 paddle 飞桨 百度飞桨

瀚元科技:利用A-OPS 智能运维助力边缘服务器运维效率提升30%

openEuler

Linux 运维 操作系统 openEuler 边缘

数据库优化器设计穿越探索之旅

阿里技术

数据库 架构

如何基于 Apache Doris 构建新一代日志分析平台

SelectDB

数据库 大数据 数据分析 Doris

暑期参加百度网盘AI大赛,夺万元现金、获大厂内推!

飞桨PaddlePaddle

人工智能 百度 paddle 飞桨 百度飞桨

DWS轻量化更新黑科技:宽表加工优化

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 7 月 PK 榜

【好文推荐】敏捷绩效考核如何做?

ShineScrum

【实践篇】推荐算法PaaS化探索与实践 | 京东云技术团队

京东科技开发者

PaaS 推荐算法 PaaS平台化能力 企业号 7 月 PK 榜

聊聊测试当下的求职困境

老张

软件测试 求职面试

防范地质灾害,北斗用芯监测

江湖老铁

HDC.Together2023 HarmonyOS学生公开课议程抢先看!

HarmonyOS开发者

HarmonyOS

Java 命令行参数解析方式探索(四):Spark & Flink

冰心的小屋

Java spark 命令行 command Parameter

和鲸 ModelWhale 与海光适配认证,“国产 CPU +开发平台” 双轮驱动信创生态建设及 AI 产业应用

ModelWhale

cpu 数字化转型 信创 数据科学 信创产业

PoseiSwap 即将开启质押,利好刺激下 POSE通证短时涨超 30%

BlockChain先知

区块链服务网络的顶层设计与应用实践

BSN研习社

[硬核技术] 时序数据预测算法研究:Prophet

乘云数字DataBuff

AI算力爆发,新职业出现,你发现了吗?

小魏写代码

人工智能 AI算力

软件测试/测试开发丨Python 内置库 sys 学习笔记分享

测试人

Python 程序员 软件测试

浅析 TiSpark v3.x 新变化

TiDB 社区干货传送门

版本测评 新版本/特性解读 7.x 实践

Spring Migration Analyzer:从Java EE到Spring转换的工具_Java_Kostis Kapelonis_InfoQ精选文章