AICon 北京站 Keynote 亮点揭秘,想了解 Agent 智能体来就对了! 了解详情
写点什么

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:522183

评论

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

Web 性能压测工具

A p7+

架构师训练营 week3 学习总结

花果山

极客大学架构师训练营

架构师训练营第七周作业

四夕晖

架构师训练营 week3 课后作业

花果山

极客大学架构师训练营

架构师训练营第 7 周作业

netspecial

极客大学架构师训练营

架构师训练营 1 期 -- 第七周作业

曾彪彪

极客大学架构师训练营

架构师训练营 1 期 - 第七周 - 性能优化1

三板斧

极客大学架构师训练营

极客大学架构师课程-第三周-作业

井中人

极客大学架构师训练营

架构师系列之4 手写单例

桃花原记

C语言重点——指针篇(一文让你完全搞懂指针)| 从内存理解指针 | 指针完全解析

编程指北

c++ 编程 后端 指针 C语言

区块链互联互通成为焦点

CECBC

区块链

区块链与机械时钟的演化

CECBC

区块链

第七周作业(作业二)

Geek_83908e

极客大学架构师训练营

第7周课后作业

happy

iOS性能优化 — 四、内存泄露检测

iOSer

ios 性能优化 编程语言 ios开发 内存泄露检测

架构师训练营 Week7 - 课后作业

压测 极客大学架构师训练营 LoadRunner

架构师训练营第 7 周学习总结

netspecial

极客大学架构师训练营

第三周学习总结

tothegump

极客大学架构师训练营

架构师训练营 1 期 -- 第七周笔记

曾彪彪

极客大学架构师训练营

作业-第3周

arcyao

Week3 作业

lggl

作业

聊聊Go代码覆盖率技术与最佳实践

大卡尔

覆盖率 Go 语言

第三周学习总结

Griffenliu

第七周学习性能优化1 总结

三板斧

甲方日常 46

句子

工作 随笔杂谈 日常

架构师训练营 作业3

Arthur

极客大学架构师训练营

2020.11.02-2020.11.08 学习总结

icydolphin

极客大学架构师训练营

架构师训练营 总结3

Arthur

极客大学架构师训练营

第三周作业

Griffenliu

多个区块链细分标准发布

CECBC

区块链 贸易

目标检测之RetinaNet

Dreamer

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