`
jamesby
  • 浏览: 383889 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

我的一次EJB重构过程

    博客分类:
  • Java
阅读更多
背景

因为历史遗留问题,代码写的杂乱无章,没有条理,而且该 EJB 组件 涉及到的 class 与其它系统的完全相同,容易造成混乱,而且该 EJB 需要添加一些新的功能,因此对其进行了重构。

第一步,将EJB 以外的类进行重新规范命名.

首先将该EJB的涉及到EJB组件接口以外的Class 全部更换名称,因为EJB的ClassLoader是web ClassLoader的父类,容易发生Class的冲突,组件接口不能更名,有很多系统在使用它。

第二步,将从来不使用的方法从Class中删除

因为EJB中的Class不会被其它应用使用,不用考虑JSP是否调用了它,也没有使用自动线程,也不用考虑其它配置文件是否引用. 删除前先将方法更名(当然组件接口相关的方法不能删除),然后编译,当编译不产生任何错误,则可以安全的将该方法删除. 利用这种方法删除了大约上百个方法.

第三步,将EJB Bean的实现抽取出来

保持EJB Bean的实现类足够的thin,尽量将所有的业务逻辑抽象为新的Class.这样测试更容易.

第四步,部署EJB 应用
ejbmodule.jar
│  commons-logging.properties
│  ejbconfig.properties
│  log4j.properties
│
├─com
│  └─foo.bar.Abc.classes
│
└─META-INF
        ejb-jar.xml
        ejb-modeler-layout.xml
        MANIFEST.MF
        weblogic-cmp-rdbms-jar.xml
        weblogic-ejb-jar.xml


ejb-application.ear
│  ejbmodule.jar
│
├─APP-INF
│  └─lib
│          commons-beanutils-1.6.1.jar
│          commons-collections-2.1.1.jar
│          commons-digester.jar
│          commons-lang-2.0.jar
│          commons-logging-1.0.4.jar
│          log4j-1.2.8.jar
│          xercesImpl.jar
│          xml-apis.jar
│
└─META-INF
        application.xml
        MANIFEST.MF

分享到:
评论

相关推荐

    EJB3.0.PDF

    EJB3.0(Enterprise JavaBeans 3.0),作为Java企业级开发的重要里程碑,标志着Java开发模式的一次重大转型。自1999年J2EE规范推出以来,EJB作为核心组成部分,极大地改变了Java企业级应用的构建方式,为开发者提供...

    Java EE technologies and migrating Java EE

    在实际迁移过程中,需要评估现有代码的复杂性,选择合适的迁移策略,可能包括逐步替换、重构或者完全重写。同时,团队需要学习新平台的最佳实践,确保迁移后应用的稳定性和性能。在整个过程中,良好的文档记录和测试...

    多次面试考题总结.zip

    2. **EJB(Enterprise JavaBeans)**:EJB是Java EE平台的一部分,用于构建可部署在服务器端的企业级应用。重点知识点包括EJB的三种类型(会话bean、实体bean和消息驱动bean)、生命周期管理、容器服务、JNDI查找、...

    Java EE-test1

    【Java EE-test1】是一个与Java企业级应用开发相关的学习资源,主要涵盖了源代码分析和工具使用的主题。...因此,无论你是初学者还是经验丰富的开发者,深入研究"Java EE-test1"都将是一次有价值的学习经历。

    2018大型互联网架构演变历程

    特别是对于像淘宝这样的电子商务平台而言,其系统架构的每一次迭代都直接影响到用户体验和服务质量。 #### 二、早期架构与挑战 2003年,淘宝成立之初采用了基于LAMP(Linux + Apache + MySQL + PHP)的技术栈构建...

    自学java看什么书-强力推荐15本必看书籍-华清远见.pdf

    - **《测试驱动开发 by Example》**:这是一本实践性强的书籍,适合在周末一次性读完并完成所有示例,通过实际操作学习TDD,有助于提升编程效率和代码质量。 3. **Java架构师之路** - **《Expert One-on-One J2EE...

    Junit的一份资料.doc

    3. **TestSuite**:一组相关的测试可以组合成一个测试套件(TestSuite),方便一次性运行多个测试。 4. **TestRunner**:运行测试的组件,JUnit 提供了命令行和IDE集成的测试运行器,如Eclipse、IntelliJ IDEA中的...

    软通动力面试集(Java、日语)

    * 使用“+”号,每加一次都会创建一个新的字符串对象。 * 使用 append() 方法,只是将字符串追加到原字符串的尾部,始终都是一个对象。 垃圾回收机制 Java 的垃圾回收机制可以自动回收不再使用的对象。当一个对象...

    ROSE培训教材中文简版

    **Java**是一种广泛使用的面向对象的编程语言,以其“一次编写,到处运行”的特性闻名。Java的设计目标是跨平台性、安全性和可移植性,使得它成为开发网络应用的理想选择。在ROSE中,Java被用来实现UML模型到代码的...

    199-淘宝网架介绍.pdf

    从LAMP架构到Java生态系统的转变,淘宝网经历了一次次的技术革新,成功应对了海量数据处理、高并发访问等挑战。这一系列的架构调整不仅极大地提升了系统的稳定性和性能,也为后续业务的快速发展奠定了坚实的基础。...

    J2EE常见问题 J2EE平台的特征与优点

    4. **一次编写,到处运行**:J2EE平台的核心优势之一是支持“Write Once, Run Anywhere”理念,即编写的代码可以在任何支持J2EE的环境中运行,无需修改。 5. **消息服务**:J2EE提供了Java Message Service (JMS),...

    基于J2EE的B2C电子商务系统开发-project

    Java以其“一次编写,到处运行”的特性,广泛应用于服务器端开发。在B2C电商系统中,Java被用来编写控制器、模型、视图等组件,确保系统能够在不同的操作系统和硬件上稳定运行。 【压缩包子文件的文件名称列表】:...

    Java EE企业级应用向Hadoop平台迁移的技术研究.pdf

    全量迁移,一次性将所有数据和业务转移;或者采用混合模式,结合Hadoop和原有Java EE架构,实现部分功能的并行运行。 总结来说,将Java EE企业级应用迁移到Hadoop平台涉及到对原应用架构的深入理解、对Hadoop平台...

    MyEclipse 使用(视频文件)_1

    在描述中提到,这些视频文件被细分为时间片段,这表明学习者可以按需观看特定的主题,而不是一次性消化整个视频。同时,视频中可能存在与观看者的交互,这意味着可能包含实时问题解答或互动练习,使得学习过程更加...

    eclipse-jee-galileo-SR2-linux-gtk.tar.gz

    - **重构工具**:支持重命名、提取方法等代码重构操作。 #### 3. 扩展性 - **插件支持**:可通过安装各种插件来扩展功能,满足不同需求。 - **社区资源**:庞大的开发者社区提供了大量的插件和解决方案。 ### 总结...

    java的一些学习心得

    Java是一种广泛使用的面向对象的编程语言,其设计目标是有着严格的类型检查、垃圾回收机制、并且能够编写一次,到处运行。在学习Java的过程中,我深刻体会到其强大的平台无关性和丰富的类库对开发工作的便利性。 1....

    JAVA的现状与未来.pdf

    6. Java的平台无关性和虚拟机:文档提到了Java的跨平台能力,即“一次编写,到处运行”的特性。JVM(Java Virtual Machine)是实现这一特性的重要组成部分。而个人Java(PersonalJava)和JavaBeans技术,则是Java...

    基于层次消息总线的体系结构

    随着计算机网络技术的迅速发展及分布式构件技术的成熟,软件工程领域正经历着一次深刻的变革。传统的集中式软件架构越来越难以满足现代软件系统的需求,如高并发、分布式计算等特性。在这样的背景下,一种新的软件...

    基于JavaEE架构的捷优享在线教育系统的设计与实现.doc

    5. **SpringCloud**:SpringCloud是基于SpringBoot构建的云应用开发工具集,它为开发者提供了在分布式系统(如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话...

    JBuilder开发人员指南

    13. **多平台开发**:了解JBuilder如何支持跨平台开发,编写一次代码,运行在不同操作系统上。 14. **协作开发**:学习如何在JBuilder中使用团队开发特性,如共享项目、代码审查和协同编辑。 15. **最佳实践**:...

Global site tag (gtag.js) - Google Analytics