本发明专利技术提供了一种在容器中装载组件的方法,包括:指定当前组件装载的类装载器,并在预置存储路径下定位组件;获取所述组件的描述文件,所述描述文件包括装载配置信息;解析所述组件描述文件,生成相应的组件描述对象;判断所述组件描述对象的装载配置信息是否对应具体的配置文件及解析规则文件,若是,则提取所述配置文件,并依据所述解析规则文件解析所述配置文件,生成相应的组件对象;若否,则依据所述装载配置信息由代码定制的组件装载器产生相应的组件对象。本发明专利技术可以在节约系统资源的前提下,有效提高容器的可扩展性和灵活性。
【技术实现步骤摘要】
本专利技术涉及信息处理
,特别是涉及一种在容器中装载组件的方法及一种在容器中装载组件的装置。
技术介绍
J2EE架构是当前主流的架构之一,目前大多数企业采用J2EE技术的结构设计与解决方案。J2EE体系结构提供中间层集成框架用来满足无需太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求。通过提供统一的开发平台,J2EE降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成强有力支持,完全支持Enterprise JavaBeans(EJB),有良好的向导支持打包和部署应用,添加目录支持,增强了安全机制,提高了性能。J2EE使用多层的分布式应用模型,应用逻辑按功能划分为组件,各个应用组件根据他们所在的层分布在不同的机器上。传统的J2EE多层企业级应用模型将两层化模型中的不同层面切分成许多层。一个多层化应用能够为不同的每种服务提供一个独立的层,以下是J2EE典型的四层结构:1、运行在客户端机器上的客户层组件;2、运行在J2EE服务器上的Web层组件;3、运行在J2EE服务器上的业务逻辑层组件;4、运行在EIS服务器上的企业信息系统(Enterprise information system)层软件。目前,J2EE平台被广泛地认为是这个架构,运行在J2EE服务器上的EJB容器可以认为是此架构的核心,EJB容器管理着所有EJB的执行,以及EJB的生命周期,并且为EJB提供所有系统级的服务。EJB组件则负责接受,处理WEB容器的客户请求和连接提供整个企业使用的数据,-->服务的EIS层。在此架构中,所有的数据访问都要通过entity bean,业务对象都是带远程接口的无状态session bean,运行在EJB容器中。具体而言,EJB容器是一个管理一个或多个EJB类/实例的抽象。它通过规范中定义的接口使EJB类访问所需的服务。EJB结构中的角色EJB组件结构是基于组件的分布式计算结构,是分布式应用系统中的组件。EJB组件通常部署在被称为EJB容器的应用服务器中,由EJB容器提供EJB组件的状态管理、事务管理、线程管理、远程数据资源访问、连接管理和安全性管理等系统级服务。所有的EJB组件实例都运行在EJB容器中,由EJB容器控制着EJB组件的生命周期。EJB组件可以被定制为提供安全和事务处理等各种系统级服务。然而,这种EJB容器和J2EE绑定,对EJB组件的开发有严格的规范限制,扩展性和灵活性也较差,例如,其不能同时在WEB容器和标准应用程序中运行,对于容器强制业务对象采用特定的接口等。并且,这种EJB容器中在组件部署时较为复杂,严重耗费系统开销。所以,本领域技术人员迫切需要发展一种能在节约系统资源的前提下,能有效提高容器的可扩展性和灵活性的组件装载方法。
技术实现思路
本专利技术所要解决的技术问题是提供一种在容器中装载组件的方法,用以在节省系统资源的前提下,有效提高容器的可扩展性和灵活性。本专利技术还提供了一种在容器中装载组件的装置,用以保证上述方法在实际中的实现及应用。为了解决上述问题,本专利技术公开了一种在容器中装载组件的方法,包括:指定当前组件装载的类装载器,并在预置存储路径下定位组件;获取所述组件的描述文件,所述描述文件包括装载配置信息;解析所述组件描述文件,生成相应的组件描述对象;判断所述组件描述对象的装载配置信息是否对应具体的配置文件及解析规则文件,若是,则提取所述配置文件,并依据所述解析规则文件解析所述配置-->文件,生成相应的组件对象;若否,则依据所述装载配置信息由代码定制的组件装载器产生相应的组件对象。优选的,所述描述文件还包括组件标识和资源路径,所述的方法还包括:从所述资源路径获取所述组件相关的资源;在容器中注册组件,所述组件包括所述组件对象及其相关资源,所述组件对象由所述组件标识区分。优选的,所述描述文件还包括组件装载类型信息,所述的方法还包括:依据所述组件装载类型信息整理所述组件对象。优选的,所述预置存储路径包括组件部署目录和组件资源目录,所述组件定位步骤还包括:第一判断步骤:判断是否存在未遍历的组件部署目录,如果是,则遍历所述组件部署目录;第二判断步骤:判断所述组件资源目录是否未处理,如果是,则定位所述未处理的组件;如果否,则返回所述第一判断步骤。优选的,所述类装载器设置在当前线程上下文中。本专利技术实施例还公开了一种在容器中装载组件的装置,包括:预处理单元,用于指定当前组件装载的类装载器,并在预置存储路径下定位组件;获取单元,用于获取所述组件的描述文件,所述描述文件包括装载配置信息;解析单元,用于解析所述组件描述文件,生成相应的组件描述对象;判断单元,用于判断所述组件描述对象的装载配置信息是否对应具体的配置文件及解析规则文件,若是,则调用第一处理单元;若否,则调用第二处理单元;第一处理单元,用于提取所述配置文件,并依据所述解析规则文件解析所述配置文件,生成相应的组件对象;第二处理单元,用于依据所述装载配置信息由代码定制的组件装载器产生相应的组件对象。-->优选的,所述描述文件还包括组件标识和资源路径,所述的装置还包括:资源提取单元,用于从所述资源路径获取所述组件相关的资源;注册单元,用于在容器中注册组件,所述组件包括所述组件对象及其相关资源,所述组件对象由所述组件标识区分。优选的,所述描述文件还包括组件装载类型信息,所述的装置还包括:整理单元,用于依据所述组件装载类型信息整理所述组件对象。优选的,所述预置存储路径包括组件部署目录和组件资源目录,所述预处理单元还包括:第一判断子单元:用于判断是否存在未遍历的组件部署目录,如果是,则遍历所述组件部署目录;第二判断子单元:用于判断所述组件资源目录是否未处理,如果是,则定位所述未处理的组件;如果否,则调用所述第一判断子单元。优选的,所述类装载器设置在当前线程上下文中。与现有技术相比,本专利技术具有以下优点:首先,本专利技术中的组件仅与配置文件和业务实现相关,容器仅与底层的构建(即解析和装载组件)相关,从而将底层的构建与业务实现分离开来,有效提高了容器的可扩展性和灵活性;再者,本专利技术的组件之间的依赖性较低,组件的类和配置文件变更后可以自动装载更新,从而进一步提高了容器的可扩展性和灵活性;此外,本专利技术中AOP的组件代理可以方便地为组件添加功能(如监控等),而无需对组件本身作任何修改;并且,本专利技术的组件部署简单,从而可以有效节约系统资源;最后,本专利技术对于服务提供商来说,技术实现简单,无技术障碍,无特殊保密算法,成本和风险较低。附图说明图1是本专利技术的一种在容器中装载组件的方法实施例1的流程图;图2是本专利技术的一种在容器中装载组件的方法实施例2的流程图;-->图3是本专利技术的支持AOP的轻量级组件容器平台的框架示意图;图4是AOP的拦截示意图;图5是所述容器平台装载层次的示意图;图6是所述组件容器平台对所有组件进行装载的流程图;图7是所述组件容器平台执行多任务装载的流程图;图8是在所述容器中装载组件的流程图;图9是所述组件注册的流程图;图10是所述组件的通用装载过程示意图;图11是一种组件动态装载的过程示意图;图12是一种组件调用的流程图;图13是本专利技术的一种在容器中装载组件的装置实施例的结构框图。具体实施方式为使本专利技术的上述目的、特征和优点能够更加本文档来自技高网...
【技术保护点】
一种在容器中装载组件的方法,其特征在于,包括: 指定当前组件装载的类装载器,并在预置存储路径下定位组件; 获取所述组件的描述文件,所述描述文件包括装载配置信息; 解析所述组件描述文件,生成相应的组件描述对象; 判断所述组件描述对象的装载配置信息是否对应具体的配置文件及解析规则文件, 若是,则提取所述配置文件,并依据所述解析规则文件解析所述配置文件,生成相应的组件对象; 若否,则依据所述装载配置信息由代码定制的组件装载器产生相应的组件对象。
【技术特征摘要】
1、一种在容器中装载组件的方法,其特征在于,包括:指定当前组件装载的类装载器,并在预置存储路径下定位组件;获取所述组件的描述文件,所述描述文件包括装载配置信息;解析所述组件描述文件,生成相应的组件描述对象;判断所述组件描述对象的装载配置信息是否对应具体的配置文件及解析规则文件,若是,则提取所述配置文件,并依据所述解析规则文件解析所述配置文件,生成相应的组件对象;若否,则依据所述装载配置信息由代码定制的组件装载器产生相应的组件对象。2、如权利要求1所述的方法,其特征在于,所述描述文件还包括组件标识和资源路径,所述的方法还包括:从所述资源路径获取所述组件相关的资源;在容器中注册组件,所述组件包括所述组件对象及其相关资源,所述组件对象由所述组件标识区分。3、如权利要求1或2所述的方法,其特征在于,所述描述文件还包括组件装载类型信息,所述的方法还包括:依据所述组件装载类型信息整理所述组件对象。4、如权利要求1所述的方法,其特征在于,所述预置存储路径包括组件部署目录和组件资源目录,所述组件定位步骤还包括:第一判断步骤:判断是否存在未遍历的组件部署目录,如果是,则遍历所述组件部署目录;第二判断步骤:判断所述组件资源目录是否未处理,如果是,则定位所述未处理的组件;如果否,则返回所述第一判断步骤。5、如权利要求1所述的方法,其特征在于,所述类装载器设置在当前线程上下文中。6、一种在容器中装载组件的装置,其特征在于,包括:预处理单元,用于指定当前组件装载的类装载器,...
【专利技术属性】
技术研发人员:严志根,周子坚,施健,吴炜斯,杨芬,王迎春,李志钧,
申请(专利权)人:中国建设银行股份有限公司,
类型:发明
国别省市:11[中国|北京]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。