免费下载案例集|20+数字化领先企业人才培养实践经验 了解详情
写点什么

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

评论

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

基础设施SIG月度动态:龙蜥官网新增CSDN第三方账号登录,内核CI新增测试任务停止功能

OpenAnolis小助手

开源 基础设施 内核 abs 龙蜥sig

Web前端常用的组态软件工具(可视化)

2D3D前端可视化开发

JavaScript web前端 组态软件 前端可视化 组态工具

长达 1.7 万字的 explain 关键字指南!

不在线第一只蜗牛

sql 关键字 教程

袋鼠云产品功能更新报告06期|数栈产品功能升级,做产品我们是认真的!

袋鼠云数栈

大数据 产品 数据中台

智能网卡在分布式 SDN 网络的应用与实践 | 龙蜥技术

OpenAnolis小助手

云计算 sdn 龙蜥大讲堂 浪潮数据 智能网卡

手把手教你落地大模型应用创意!全新AI达人创造营限时招募

飞桨PaddlePaddle

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

【会议】《卧龙:苍天陨落》制作人山际真晃与总监平山正和将联袂出席 2023 中国游戏开发者大会(CGDC)

CGDC中国游戏开发者大会

设计 开发 游戏开发 ChinaJoy

机器学习之PyTorch和Scikit-Learn第3章 使用Scikit-Learn的机器学习分类器之旅Part 1

Alan

人工智能 机器学习 PyTorch scikit-learn

如何有效检测、识别和管理 Terraform 配置漂移?

SEAL安全

Netty入门之可写事件以及多线程版的通信

派大星

ES 数据太敏感不让看,怎么办?

极限实验室

ES hash 数据脱敏; 敏感数据 正则脱敏

如何用java校验SQL语句的合法性?(提供五种解决方案)

EquatorCoco

Java 教程 SQL语句

安装使用舞台租赁LED显示屏的8大事项

Dylan

测试 安装 结构 LED显示屏

如何写好代码

阿里技术

代码 如何写好代码

火山引擎 DataLeap 构建Data Catalog系统的实践(三):关键技术与总结

字节跳动数据平台

企业号 7 月 PK 榜

[低代码平台、国产化]基于JPA的简易伪低代码模块

alexgaoyh

jpa 国产化 低代码开发平台 QUERYDS 动态列搜索

10大功能特性,助力开发者玩转华为云API Explorer

华为云PaaS服务小智

API 华为云 华为开发者大会2023

达观曹植大模型正式对外公测!专注于长文本、多语言、垂直化发展

NLP资深玩家

大模型 达观数据 曹植大语言模型

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