轻量级容器分析(light weight container)

本文探讨了轻量级容器的概念,对比了轻量级与重量级容器的区别,强调了轻量级容器的封装、组件管理和运行灵活性。以Spring框架为例,详细阐述了其组件、依赖注入、事务管理等特性,并指出Spring如何提高开发效率和测试性,为选择和使用轻量级容器提供了指导。
摘要由CSDN通过智能技术生成

                                                            轻量级容器分析
前言
        目前,基于Web的MVC框架在J2EE的世界内空前繁荣。TTS(www.theserverside.com)网站上几乎每隔一两个星期就会有新的MVC框架发布。比较好的MVC框架,老牌的有Struts、Webwork。新兴的MVC 框架有Spring MVC、Tapestry、JSF等。这些大多是著名团队的作品,另外还有一些边缘团队的作品,也相当出色,如Dinamica、VRaptor等。这些框架都提供了较好的层次分隔能力。在实现良好的MVC 分隔的基础上,通过提供一些现成的辅助类库,同时也促进了生产效率的提高。
        但是,web层知识解决了我们问题的小部分,保持thin web layer是非常值得和重要的策略,它应该只负责同客户的交互和应答逻辑,不涉及系统商业功能如何实现和维护。往往系统的复杂度也是我们Business Model决定的,因此Business 层的架构好坏往往起到非常重要的作用。
        关于Business层的架构大家已经有一个共识,那就是我们的Business Object (Component,Service...)需要一个很好的框架来管理,安全、事务、逻辑划分、代码重用,扩展点,组件生命周期等。幸运的是,我们可以使用容器来解决这些问题(从存在形式上来说,容器也是一个框架)。
1 基本概念
1.1容器
        容器就是一组提供一系列服务的管理器,只要你符合容器的服务要求(规范),容器就可以让你使用范围内的管理服务。 早在Web流行的时候,http container就为我们提供解析Html的能力,让我们的html代码可以通过http协议来发布到internet.随着web应用的推广,动态语言的发展,http容器逐步可以用指定的接口来解释特殊文件中的特殊片断,如:php,asp,jsp等等。
1.2轻量级容器
         "轻量级容器"越来越成为Java世界的讨论关键词之一。那么到底什么是"轻量级"容器?在你浏览最近的有关J2EE的文章或者blog,都有意无意的提到了"lightweigh containter",伴随这个词出现最多的就是"IoC","dependencies inject","AOP"等等。既然是"轻",那就是比较"重"的而言。"重"的典型代表就是EJB,EJB提供了一系列"重量级"企业级服务,并可以让你开发的组件可以很好的集成EJB容器所提供的企业级服务,如JTA等。那么既然有了EJB容器,为什么还需要"轻量级"呢?有过EJB经验的人
深有感触:
     1)、部署复杂,运行缓慢
     2)、内在服务多,启动慢
     3)、规则特多,空间很小
     4)、难以测试(调试)
         ...
        “轻量级容器”的出现就是致力于解决这些问题,并且融入了新的模式,提供更加灵活的服务。轻量级容器不支持分布式环境,不过,不是所有的程序都需要这个服务的。

Elite Container是DELPHI下的一个轻量级IoC对象容器IoC:Inverse of Control,反转控制)。它是参考了Java中的Spring框架(主要是配置文件的写法),并结合DELPHI的特点来构建的。相比Spring的对象容器,它提供的功能更为精简常用(如对象延迟创建、对象属性自动注入等),降低了学习的难度,并且提供了很多扩展点,你只需简单地写一个插件实现类,并在配置文件中进行简单配置,就可以让Elite Container拥有你的自定义功能! 借助Elite ContainerIoc思想,你可以更轻易地构建出具有松散耦合、重用度高的应用程序。它的核心思想就是拆分功能的接口和实现,上层只依赖于下层的接口,然后通过Elite Container的配置,把不同的实现类注入到该接口中,达到更换功能,也就是复用已有代码的目的。设计人员可以真正地发挥好自己的面向对象思想和相关设计模式,来架构企业级的应用程序,而无需象以前那样,在Delphi中用起面向对象总有点捉襟见袖的感觉。 ps. 由于写程序,还有精心准备的26个例子,都花费了我很多的时间,所以象征性地收2个资源分,希望大家不会介意:) ps2. 说明一下,开发出来的程序在发布的时候,除了发布EliteCore.bpl、EliteContainer.bpl外,还需要发布rtl.bpl(EliteCore.bpl引用到了它)。由于一时疏忽,例子中的Bin目录里忘记带上它了,请大家注意,谢谢~
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值