【AICon】探索八个行业创新案例,教你在教育、金融、医疗、法律等领域实践大模型技术! >>> 了解详情
写点什么

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

评论

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

永中云转换新升级 文档在线预览增添更多选择

DT极客

k8s上运行我们的springboot服务之——简单的架构思考

柠檬

k8s springboot

怎么用"设计思维"思考产品?

Yanel 说敏捷产品

产品 设计 产品设计 产品开发

小岑的架构学习笔记-架构设计的历史背景

程序员小岑

c++代码整洁之道

泰伦卢

c c++ C#

健康饮食和定期运动带给我们的一点启示

董一凡

生活质量

乙己说:LRU实现思路整理

再见小飞侠

缓存 LeetCode Go 语言

Golang testing: “no test files”

北纬32°

Go 语言

实战!我用 Wireshark 让你 “看得见“ TCP

小林coding

Linux TCP 计算机网络

传统岗位新挑战:信息安全之路

nexpose

安全架构师 安全 安全管理

乙己说:NUMA是个啥?

再见小飞侠

jdk G1 ZGC 内存

Python 如何随机打乱列表(List)排序

BigYoung

Python List random 随机

[从零学习Spring Cloud]Nacos配置中心

玏佾

Spring Cloud nacos

Android | Tangram动态页面之路(六)数据分离

哈利迪

android

小岑的架构学习笔记-架构是什么?

程序员小岑

程序员的晚餐 | 5 月 21 日 四季豆炒腊肠

清远

美食

要弄清楚if/switch的本质区别,以及优化方式

张驰

Java

KubeSphere权威指南(一)--------使用KubeSphere创建Percona Server,并对外暴露端口

赵欣

k8s percona server

Spring注入的对象到底是什么类型

JFound

spring

JVM源码分析之JVM启动流程

猿灯塔

云上数据库类产品的模式与发展趋势

韩超

数据库 redis 腾讯云 阿里云

语雀性感,印象迟暮。

彭宏豪95

学习 工具 在线办公

数据产品经理实战-开篇

第519区

产品经理

分布式数据库

Leiy

两边夹的应用三

孙苏勇

算法 两边夹

极客时间学习心得:用分类和聚焦全面夯实技术认知

Anfernee Hu

学习

k8s上运行我们的springboot服务之——热点数据

柠檬

redis

科学理论的反思

美多丽可

学习

深入浅出SpringMVC系列~

程序员的时光

spring springmvc

高内聚与低耦合

落英亭郎

面向对象 高内聚 低耦合

我的事务为什么会失效

JFound

spring

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