CN102436373B - 企业分布式应用系统中实现资源加载及资源热更新的方法 - Google Patents

企业分布式应用系统中实现资源加载及资源热更新的方法 Download PDF

Info

Publication number
CN102436373B
CN102436373B CN201110270105.5A CN201110270105A CN102436373B CN 102436373 B CN102436373 B CN 102436373B CN 201110270105 A CN201110270105 A CN 201110270105A CN 102436373 B CN102436373 B CN 102436373B
Authority
CN
China
Prior art keywords
resource
blocker
resolver
list
steps
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201110270105.5A
Other languages
English (en)
Other versions
CN102436373A (zh
Inventor
王�锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
PRIMETON INFORMATION TECHNOLOGY Co Ltd
Original Assignee
PRIMETON INFORMATION TECHNOLOGY Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by PRIMETON INFORMATION TECHNOLOGY Co Ltd filed Critical PRIMETON INFORMATION TECHNOLOGY Co Ltd
Priority to CN201110270105.5A priority Critical patent/CN102436373B/zh
Publication of CN102436373A publication Critical patent/CN102436373A/zh
Application granted granted Critical
Publication of CN102436373B publication Critical patent/CN102436373B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明涉及一种企业分布式应用系统中实现资源加载以及资源热更新的方法,该方法包括开发期实现资源解析器接口和拦截器接口并配置格式定义的操作、运行期对资源加载配置文件解析的操作、运行期模块资源加载的操作以及运行期热更新线程监听的操作。采用本发明的方法能使资源的解析和热更新工作更为简单高效,增加新的资源类型时,无需修改核心代码,系统运行效率更高,性能稳定可靠,并降低了开发维护的成本,增强了系统可移植性和可扩展性,使用户专注于业务逻辑的处理,还能够快速适应业务需求和技术的变化,支撑建立高度模块化又高度整合的软件系统,其适用范围较为广泛,为企业应用中对资源的管理打下了坚实的基础。

Description

企业分布式应用系统中实现资源加载及资源热更新的方法
技术领域
本发明涉及计算机应用技术领域,特别涉及计算机企业应用系统技术领域,具体是指一种企业分布式应用系统中实现资源加载以及资源热更新的方法。
背景技术
目前,在企业级应用开发领域,其架构主要是按照面向服务体系架构(Service-OrientedArchitecture,SOA)或者按照J2EE架构(Java 2Platform Enterprise Edition)实现的,在功能开发时,通常将应用划分为多个功能模块,每个功能模块完成特定的功能。在模块功能实现的过程中,不可避免地要涉及到与各种资源,在功能代码实现中需要对资源进行解析加工,把各种资源转换化为机器能识别的形式。
应用中的每个模块相对独立,包含了实现模块功能需要的所有资源,模块之间通过模块间的依赖关系可以使用依赖模块中的资源,实现资源的重用。模块中的资源通常包括页面展现资源、服务描述资源、业务逻辑资源、模块配置以及模块元数据资源等,为了管理的方便,每个模块的资源通常部署在单独的压缩包或者目录中。在运行期,系统加载模块中资源时首先对模块资源的存储形式如压缩包(zip、jar)、文件目录、资源存储库等进行分析,对压缩包等类型的模块进行解压缩,对通过存储库存取资源的模块从存储库中下载模块对应的资源至本地系统中,然后系统针对不同的资源分别进行处理。在处理资源时,针对不同类型的资源文件分别提供不同的资源查找逻辑和加载逻辑,对于模块中不同类型的资源将有可能进行重复遍历和搜索,由此造成效率的降低以及功能代码的重复,同时如果新增对某一类资源的处理,则需要重新编写与其资源相对应的查找以及加载逻辑。在资源的热更新处理方面,每一类资源单独启动针对此资源的监听线程进行处理,不同类型的资源使用不同的资源变更通知机制,缺乏统一的热更新通知和管理机制,同时大量启动线程也浪费了大量的系统资源。
随着应用系统的不断扩大,系统中包含的资源也越来越多,格式也越来越复杂,通常为了编码实现的方便,系统中已提供了对已有资源类型的支持,资源处理与应用逻辑采取的是紧耦合的方式,应用功能开发完成后,如果新增对一种资源类型的支持,需要修改其核心业务代码,这都将使测试人员和维护人员的工作量急剧增加。随着现有技术中,在多系统分工合作日益地紧密,如何方便的提供针对不同资源类型的加载、热更新支持成为该技术领域中尤为迫切需要解决的问题。
发明内容
本发明的目的是克服了上述现有技术中的缺点,提供一种使资源的解析以及热更新工作变更为简单、高效,增加新的资源类型时,无需修改核心代码,从而使资源的处理以及解析过程更加直观,提高了开发的效率,系统运行效率较高,性能稳定可靠,开发维护成本较低,系统可移植性和可扩展性更强,且快速适应业务需求的变化和技术变化的企业分布式应用系统中实现资源加载以及资源热更新的方法
为了实现上述的目的,本发明的企业分布式应用系统中实现资源加载以及资源热更新的方法具体包括:
开发期实现资源解析器接口和拦截器接口并配置格式定义的操作、运行期对资源加载配置文件解析的操作、运行期模块资源加载的操作以及运行期热更新线程监听的操作;
其中,所述的开发期实现资源解析器接口和拦截器接口并配置格式定义的操作,包括以下步骤:
(11)新建资源解析扩展包;
(12)编写实现资源解析器接口的实现类;
(13)编写实现资源拦截器接口的实现类;
(14)配置资源解析器、拦截器与资源的映射规则;
(15)将资源解析器扩展包部署到运行环境中;
所述的运行期对资源加载配置文件解析的操作,包括以下步骤:
(21)提供支持资源解析器扩展的接口类,以供扩展;
(22)提供支持资源拦截器扩展的接口类,以供扩展;
(23)加载定义的资源解析器、拦截器与资源映射规则配置文件;
(24)根据对配置文件的解析形成资源与解析器的映射列表;
(25)根据对配置文件的解析形成资源与拦截器的映射列表;
(26)对资源与解析器的映射列表按优先级进行排序;
所述的运行期模块资源加载的操作,包括以下步骤:
(31)遍历模块下所有资源,并缓存;
(32)对资源按资源解析器的配置进行资源的分类;
(33)执行资源解析前的拦截器;
(34)针对分类资源调用不同的资源解析器进行资源解析;
(35)判断资源解析器是否支持懒加载;
(36)缓存资源解析后的模型;
(37)执行资源解析后的拦截器;
所述的运行期热更新线程监听的操作,包括以下步骤:
(41)资源热更新线程的编写;
(42)设置热更新线程的扫描间隔;
(43)遍历模块对应的目录,查找变更的资源;
(44)对变更资源按资源解析器的配置进行资源的分类;
(45)执行变更资源解析前的拦截器;
(46)针对分类变更资源调用不同的资源解析器进行资源解析;
(47)判断变更资源解析器是否支持懒加载;
(48)变更缓存中资源解析的模型;
(49)执行变更资源解析后的拦截器。
该企业分布式应用系统中实现资源加载以及资源热更新的方法中,所述的步骤(11)具体为:新建页面流资源解析扩展包,其包括以下步骤:
(11a)通过开发环境的“文件”菜单中新建子菜单,选择新建页面流资源解析扩展包;
(11b)输入页面流资源解析扩展包的名称,系统创建相应的目录结构;
(11c)生成页面流资源解析扩展包的资源树,包括配置、接口等结点。
所述的步骤(12)具体为:编写实现页面流资源解析器接口的实现类,其包括以下步骤:
(12a)新建Java Class,实现资源加载的接口IResourceLoader;
(12b)实现资源加载的接口中的loadResource资源加载方法,对资源进行解析,转换为资源的内存模型;
(12c)对新增资源进行解析处理;
(12d)对修改资源进行解析处理;
(12e)对删除资源进行解析处理;
(12f)设置资源是否支持懒加载,本页面流资源支持懒加载。
所述的步骤(13)具体为:编写实现页面流资源拦截器接口的实现类,其包括以下步骤:
(13a)新建Java Class,实现资源拦截器的接口IResourceHandler;
(13b)实现资源拦截器的接口中的doBefore前执行、doAfter后执行、doException异常执行方法,对资源解析前后进行拦截;
(13c)对资源解析前拦截器处理;
(13d)对资源解析后拦截器处理;
(13e)对资源解析出错后拦截器处理。
所述的步骤(14)具体为:配置页面流资源解析器、拦截器与资源的映射规则,其包括以下步骤:
(14a)在资源解析扩展包扩展包中资源树下的“配置”结点下新建资源处理器配置文件ResourceProcessor.xml;
(14b)在文件中配置资源处理的解析器、拦截器以及优先级。
所述的步骤(15)具体为:页面流资源解析器扩展包部署到运行环境中,其包括以下步骤:
(15a)在资源解析扩展包资源树上选择“部署”菜单;
(15b)资源解析对应扩展包下的资源按目录结构部署到运行环境中。
该企业分布式应用系统中实现资源加载以及资源热更新的方法中,所述的步骤(21)具体包括以下步骤:
(21a)定义资源解析器操作的接口类IResourceLoader,供用户扩展,接口中包括对新增、修改、删除资源的处理以及设置解析器是否支持懒加载;
(21b)提供根据资源类型获取资源解析器的工厂类ResourceLoaderFactory。
所述的步骤(22)具体包括以下步骤:
(22a)定义资源拦截器操作的接口类IResourceHandler,供用户扩展,接口中包括对资源解析前、后以及发生异常的处理;
(22b)提供根据资源类型获取拦截器的工厂类ResourceHandlerFactory。
所述的步骤(23)具体包括以下步骤:
(23a)遍历应用类路径下所有的资源处理器配置文件ResourceProcessor.xml,形成处理器文件列表;
(23b)循环解析处理器文件列表中的文件;
(23c)针对每个处理器节点的资源处理器resourceProcessor,形成处理器描述模型ResourceProcessor;
(23d)对处理器描述模型ResourceProcessor设置其资源类型属性;
(23e)对处理器描述模型ResourceProcessor设置其优先级属性;
(23f)对处理器描述模型ResourceProcessor设置其解析器属性,并对解析器实例化;
(23g)对处理器描述模型ResourceProcessor设置其拦截器属性,并对拦截器实例化。
所述的步骤(24)具体包括以下步骤:
(24a)遍历所有处理器描述模型ResourceProcessor对应的列表;
(24b)读取处理器描述模型ResourceProcessor中的资源类型属性和对应的解析器实例;
(24c)资源类型属性和对应的解析器实例形成映射列表。
所述的步骤(25)具体包括以下步骤:
(25a)遍历所有处理器模型ResourceProcessor对应的列表;
(25b)读取处理器模型ResourceProcessor中的资源类型属性和对应的拦截器实例;
(25c)资源类型属性和对应的拦截器实例形成映射列表;
(25d)对资源类型属性和对应的拦截器实例形成映射列表进行缓存。
所述的步骤(26)具体包括以下步骤:
(26a)遍历所有处理器模型ResourceProcessor对应的列表;
(26b)读取资源类型属性与优先级,形成映射关系列表;
(26c)对资源类型属性与优先级映射关系列表按优先级排序;
(26d)遍历资源类型属性和对应的解析器实例形成映射列表;
(26e)按优先级的排序顺序,对解析器实例按同样规则进行排序;
(26f)缓存排序后的资源类型与解析器实例映射列表。
该企业分布式应用系统中实现资源加载以及资源热更新的方法中,所述的步骤(31)具体包括以下步骤:
(31a)查找模块资源所在的根目录;
(31b)遍历资源根目录下的一级子目录以及资源;
(31c)递归遍历子目录,遍历其下的子目录以及资源;
(31d)资源放入资源列表缓存,以资源所在的模块绝对路径为关键字,包括资源的修改时间、绝对路径列表。
所述的步骤(32)具体包括以下步骤:
(32a)从缓存中的资源类型与解析器实例映射列表中计算出所有的已按设置的优先级进行了排序的资源类型列表;
(32b)遍历模块资源缓存中的所有资源;
(32c)按资源类型设置,对资源进行分类,形成资源类型与物理资源的映射列表。
所述的步骤(33)具体包括以下步骤:
(33a)遍历缓存中的所有的资源类型列表;
(33b)根据资源类型从资源类型与物理资源的映射列表中查找对应的物理资源;
(33c)根据资源类型属性从资源类型与拦截器实例映射列表缓存中查找对应的资源拦截器实例列表;
(33d)遍历查找到的资源拦截器实例列表;
(33e)执行资源拦截器实例的doBefore前执行方法,把资源列表作为输入参数传递到拦截器中。
所述的步骤(34)具体包括以下步骤:
(34a)遍历缓存中的所有的资源类型列表;
(34b)根据资源类型从资源类型与物理资源的映射列表中查找对应的物理资源;
(34c)根据资源类型属性从资源类型与资源解析器实例映射列表缓存中查找对应的资源解析器实例列表;
(34d)遍历查找到的资源解析器实例列表;
(34e)执行资源解析器实例的loadResource资源加载方法,把资源列表作为输入参数传递到拦截器中。
所述的步骤(35)具体包括以下步骤:
(35a)执行资源解析器实例的isSupportLazyLoading是否支持懒加载方法;
(35b)如果返回为真,则表示此资源解析器支持懒加载;如果返回为假,则表示此资源解析器不支持懒加载;
(35c)如果资源解析器不支持懒加载,则调用资源解析器执行资源加载;
(35d)如果资源解析器支持懒加载,则对资源引用关系进行缓存,其关键字为资源所在模块的相对路径URI;
(35e)用户从资源模型缓存中根据资源URI取得资源模型时,如果从资源缓存模型中未找到所对应的资源,则从资源引用关系缓存中查找此资源URI对应的资源物理信息,如果存在,则调用此资源对应解析器实例的loadResource资源加载方法,对资源进行加载。
所述的步骤(36)具体包括以下步骤:
(36a)调用源解析器实例的loadResource资源加载方法后,形成资源对应的模型对象;
(36b)对资源模型对象缓存,其关键字为资源所在模块的相对路径URI,值为对应的模型对象。
所述的步骤(37)具体包括以下步骤:
(37a)遍历缓存中的所有的资源类型列表;
(37b)根据资源类型从资源类型与物理资源的映射列表中查找对应的物理资源;
(37c)根据资源类型属性从资源类型与拦截器实例映射列表缓存中查找对应的资源拦截器实例列表;
(37d)遍历查找到的资源拦截器实例列表;
(37e)执行资源拦截器实例的doAfter后执行方法,把资源列表作为输入参数传递到拦截器中;
(37f)如果资源解析执行时出现错误,则执行资源拦截器实例的doException异常执行方法,把资源列表以及发生的异常作为输入参数传递到拦截器中。
该企业分布式应用系统中实现资源加载以及资源热更新的方法中,所述的步骤(42)具体包括以下步骤:
(42a)设置资源变更的扫描时间的设置单位;
(42b)设置监听资源变更的时间间隔。
所述的步骤(43)具体包括以下步骤:
(43a)遍历模块对应的目录以及子目录,查找对应的资源;
(43b)根据查找到的资源路径列表,与资源列表缓存进行比对;
(43c)查找到的资源在资源列表缓存中存在,但时间戳不同,则表示此资源已修改;
(43d)查找到的资源在资源列表缓存中不存在,则表示此资源为新增;
(43e)反向查找资源列表缓存,如果资源列表缓存中存在但在查找到的资源列表中不存在,则表示此资源已删除;
(43f)对新增、修改、删除的资源形成资源变更列表。
所述的步骤(44)具体包括以下步骤:
(44a)从缓存中的资源类型与解析器实例映射列表中计算出所有的已按设置的优先级进行排序的资源类型列表;
(44b)遍历资源变更列表中的所有资源;
(44c)按资源类型设置,对资源进行分类,形成资源类型与物理资源的映射列表。
所述的步骤(45)具体包括以下步骤:
(45a)遍历变更的资源类型与物理资源的映射列表;
(45b)根据资源类型属性从资源类型与拦截器实例映射列表缓存中查找对应的资源拦截器实例列表;
(45c)遍历查找到的资源拦截器实例列表;
(45d)执行资源拦截器实例的doBefore前执行方法,把变更资源列表作为输入参数传递到拦截器中。
所述的步骤(46)具体包括以下步骤:
(46a)遍历变更的资源类型与物理资源的映射列表;
(46b)根据资源类型属性从资源类型与资源解析器实例映射列表缓存中查找对应的资源解析器实例列表;
(46c)遍历查找到的资源解析器实例列表;
(46d)执行资源解析器实例的loadResource资源加载方法,把变更资源列表作为输入参数传递到拦截器中。
所述的步骤(47)具体包括以下步骤:
(47a)执行资源解析器实例的isSupportLazyLoading是否支持懒加载方法;
(47b)如果返回为真,则表示此资源解析器支持懒加载;如果返回为假,则表示此资源解析器不支持懒加载;
(47c)如果资源解析器不支持懒加载,则调用资源解析器对变更资源执行资源加载;
(47d)如果资源解析器支持懒加载,则更新资源引用关系缓存,其关键字为资源所在模块的相对路径URI。
所述的步骤(48)具体包括以下步骤:
(48a)调用源解析器实例的loadResource资源加载方法后,形成变更资源对应的模型对象;
(48b)更新资源模型对象缓存,其关键字为资源所在模块的相对路径URI,值为资源变更后对应的模型对象。
所述的步骤(49)具体包括以下步骤:
(49a)遍历变更的资源类型与物理资源的映射列表;
(49b)根据资源类型属性从资源类型与拦截器实例映射列表缓存中查找对应的资源拦截器实例列表;
(49c)遍历查找到的资源拦截器实例列表;
(49d)执行变资源拦截器实例的doAfter后执行方法,把变更资源列表作为输入参数传递到拦截器中;
(49e)如果资源解析执行时出现错误,则执行资源拦截器实例的doException异常执行方法,把变更资源列表以及发生的异常作为输入参数传递到拦截器中。
采用了该发明的企业分布式应用系统中实现资源加载以及资源热更新的方法,其包括开发期实现资源解析器接口和拦截器接口并配置格式定义的操作、运行期对资源加载配置文件解析的操作、运行期模块资源加载的操作以及运行期热更新线程监听的操作。从而使得对资源的解析以及热更新工作更为简单而高效,增加新的资源类型时,无需修改核心代码,可以完成以可插拔的方式进行资源处理器的注入。同时,采用本发明的方法,对资源的处理以及解析过程更加直观,提高了开发的效率,快捷方便,系统运行效率较高,性能稳定可靠,降低了开发维护的成本;而且增强了系统可移植性和可扩展性,使用户专注于业务逻辑的处理;不仅如此,该方法还能够快速适应业务需求的变化和技术变化,能够支撑建立高度模块化而且又高度整合的软件系统,适用范围较为广泛,为企业应用中对资源的管理打下了坚实的基础。
附图说明
图1为本发明企业分布式应用系统中实现资源加载以及资源热更新的方法中资源加载接口IResourceLoader类图。
图2为本发明企业分布式应用系统中实现资源加载以及资源热更新的方法中资源拦截器接口IResourceHandler类图。
图3为本发明企业分布式应用系统中实现资源加载以及资源热更新的方法中资源解析器工厂ResourceLoaderFactory类图。
图4为本发明企业分布式应用系统中实现资源加载以及资源热更新的方法中资源拦截器工厂ResourceHandlerFactory类图。
图5为本发明企业分布式应用系统中实现资源加载以及资源热更新的方法中资源处理器模型ResourceProcessor类图。
图6为本发明企业分布式应用系统中实现资源加载以及资源热更新的方法中资源处理汇总类图。
图7为本发明企业分布式应用系统中实现资源加载以及资源热更新的方法中资源处理器配置文件解析流程图。
图8为本发明企业分布式应用系统中实现资源加载以及资源热更新的方法中资源加载、解析流程图。
图9为本发明企业分布式应用系统中实现资源加载以及资源热更新的方法中资源热更新线程监听流程图。
具体实施方式
为了能够更清楚地理解本发明的技术内容,特举以下实施例详细说明。
在本发明的企业分布式应用系统中实现资源加载以及资源热更新方法应用于基于页面流资源的加载以及热更新的具体实施例中:页面流描述为基于J2EE环境下单个HTTP请求处理过程以及多个请求/页面之间的跳转关系,实现页面请求的流转,其配置格式采用XML结构,资源的扩展名为.flow。
该企业分布式应用系统中实现资源加载以及资源热更新的系统结构及其方法,包括运行期支撑资源加载及热更新扩展的通用框架和开发期资源加载以及热更新的配置格式定义。运行期支撑资源加载及热更新扩展的通用框架包括对资源加载配置文件的解析,通过对该配置文件的解析形成资源与解析器以及资源加载拦截器的映射列表,根据此列表能查找到资源对应的处理器和相应的拦截器;同时,为支持资源的热更新操作,运行期启动一监听线程,监听应用中所有资源的变化,当有资源发生变更时,把资源进行分类,然后交由配置的解析器进行资源的处理。开发期资源加载以及热更新的配置格式定义包括了针对特定资源加载以及热更新资源解析接口和拦截器接口的实现以及对此解析器、拦截器的注册。本发明的企业分布式应用系统中实现资源加载以及资源热更新的方法包括开发期资源解析器接口、拦截器接口实现以及配置格式定义操作、运行期对资源加载配置文件的解析操作、模块资源的加载操作以及热更新线程的监听操作。
该实施例中的开发期资源解析器接口、拦截器接口实现以及配置格式定义操作包括以下步骤:
(11)新建页面流资源解析扩展包,包括以下步骤:
a)通过开发环境“文件”菜单中新建子菜单,选择新建页面流资源解析扩展包;
b)输入页面流资源解析扩展包的名称,系统创建相应的目录结构;
c)生成页面流资源解析扩展包的资源树,包括配置、接口等结点。
(12)编写实现页面流资源解析器接口的实现类,包括以下步骤:
a)新建Java Class,实现资源加载的接口IResourceLoader,其类图如图1如示;
b)实现资源加载的接口中的loadResource方法,对资源进行解析,转换为资源的内存模型;
c)对新增资源进行解析处理;
d)对修改资源进行解析处理;
e)对删除资源进行解析处理;
f)设置资源是否支持懒加载,本页面流资源支持懒加载,设置为true。
(13)编写实现页面流资源拦截器接口的实现类,包括以下步骤:
a)新建Java Class,实现资源拦截器的接口IResourceHandler,其类图如图2如示;
b)实现资源拦截器的接口中的doBefore、doAfter、doException方法,对资源解析前后进行拦截;
c)对资源解析前拦截器处理;
d)对资源解析后拦截器处理;
e)对资源解析出错后拦截器处理。
(14)配置页面流资源解析器、拦截器与资源的映射规则,包括以下步骤:
a)在资源解析扩展包扩展包中资源树下的“配置”结点下新建文件ResourceProcessor.xml;
b)在文件中配置资源处理的解析器、拦截器以及优先级,格式定义如下:
Figure BDA0000090763170000111
对本实施例扩展名为flow的资源的解析器类全称为com.FlowResourceProcessor,拦截器类全称为com.FlowResourceHandler,优先级为10,则此资源对应处理器的配置为:
Figure BDA0000090763170000112
(15)页面流资源解析器扩展包部署到运行环境中,包括以下步骤:
a)在资源解析扩展包资源树上右击,在弹出菜单中选择“部署”菜单;
b)资源解析对应扩展包下的资源按目录结构部署到运行环境中。
经过以上步骤,资源处理的准备阶段已经完成,用户在添加新的资源处理时,通过几个简单的步骤:实现资源解析器接口、实现资源拦截器接口以及配置资源解析规则的操作就完成了。
该实施例中的运行期对资源加载配置文件的解析操作包括以下步骤,其流程图如图7所示:
(21)提供支持资源解析器扩展的接口类,以供扩展,包括以下步骤:
a)定义资源解析器操作的接口类IResourceLoader,其类图如图1所示,供用户扩展,接口中包括对新增、修改、删除资源的处理以及设置解析器是否支持懒加载;
b)提供根据资源类型获取资源解析器的工厂类ResourceLoaderFactory,其类图如图3如示。
(22)提供支持资源拦截器扩展的接口类,以供扩展,包括以下步骤:
a)定义资源拦截器操作的接口类IResourceHandler,其类图如图2所示,供用户扩展,接口中包括对资源解析前、后以及发生异常的处理;
b)提供根据资源类型获取拦截器的工厂类ResourceHandlerFactory,其类图如图4如示。
(23)加载定义的资源解析器、拦截器与资源映射规则配置文件,包括以下步骤:
a)遍历应用类路径下所有的资源处理器配置文件ResourceProcessor.xml,形成处理器文件列表;
b)循环解析处理器文件列表中的文件;
c)针对每个处理器节点resourceProcessor,形成处理器描述模型ResourceProcessor,其类图如图5如示,资源处理关键类关系图如图6如示;
d)对处理器模型ResourceProcessor设置其资源类型属性;
e)对处理器模型ResourceProcessor设置其优先级属性;
f)对处理器模型ResourceProcessor设置其解析器属性,并对解析器实例化;
g)对处理器模型ResourceProcessor设置其拦截器属性,并对拦截器实例化。
(24)根据对配置文件的解析形成资源与解析器的映射列表,包括以下步骤:
a)遍历所有处理器模型ResourceProcessor对应的列表;
b)读取处理器模型ResourceProcessor中的资源类型属性和对应的解析器实例;
c)资源类型属性和对应的解析器实例形成映射列表。
(25)根据对配置文件的解析形成资源与拦截器的映射列表,包括以下步骤:
a)遍历所有处理器模型ResourceProcessor对应的列表;
b)读取处理器模型ResourceProcessor中的资源类型属性和对应的拦截器实例;
c)资源类型属性和对应的拦截器实例形成映射列表;
d)对资源类型属性和对应的拦截器实例形成映射列表进行缓存。
(26)对资源与解析器的映射列表按优先级进行排序,包括以下步骤:
a)遍历所有处理器模型ResourceProcessor对应的列表;
b)读取资源类型属性与优先级,形成映射关系列表;
c)对资源类型属性与优先级映射关系列表按优先级排序,优先级数字越大排序越靠前;
d)遍历资源类型属性和对应的解析器实例形成映射列表;
e)按优先级的排序顺序,对解析器实例按同样规则进行排序;
f)缓存排序后的资源类型与解析器实例映射列表。
该实施例中的运行期模块资源的加载包括以下步骤,其流程图如图8所示:
(31)遍历模块下所有资源,并缓存,包括以下步骤:
a)查找模块资源所在的根目录;
b)遍历资源根目录下的一级子目录以及资源;
c)递归遍历子目录,遍历其下的子目录以及资源;
d)资源放入资源列表缓存,以资源所在的模块绝对路径为关键字,包括资源的修改时间、绝对路径列表。
(32)对资源按资源解析器的配置进行资源的分类,包括以下步骤:
a)从缓存中的资源类型与解析器实例映射列表中计算出所有的资源类型列表,此资源列表已按设置的优先级进行了排序;
b)遍历模块资源缓存中的所有资源;
c)按资源类型设置,对资源进行分类,形成资源类型与物理资源的映射列表。
(33)执行资源解析前的拦截器,包括以下步骤:
a)遍历缓存中的所有的资源类型列表;
b)根据资源类型从资源类型与物理资源的映射列表中查找对应的物理资源;
c)根据资源类型属性从资源类型与拦截器实例映射列表缓存中查找对应的资源拦截器实例列表;
d)遍历查找到的资源拦截器实例列表;
e)执行资源拦截器实例的doBefore方法,把资源列表作为输入参数传递到拦截器中。
(34)针对分类资源调用不同的资源解析器进行资源解析,包括以下步骤:
a)遍历缓存中的所有的资源类型列表;
b)根据资源类型从资源类型与物理资源的映射列表中查找对应的物理资源;
c)根据资源类型属性从资源类型与资源解析器实例映射列表缓存中查找对应的资源解析器实例列表;
d)遍历查找到的资源解析器实例列表;
e)执行资源解析器实例的loadResource方法,把资源列表作为输入参数传递到拦截器中。
(35)判断资源解析器是否支持懒加载,包括以下步骤:
a)执行资源解析器实例的isSupportLazyLoading方法;
b)如果返回为真,则表示此资源解析器支持懒加载;如果返回为假,则表示此资源解析器不支持懒加载;
c)如果资源解析器不支持懒加载,则调用资源解析器执行资源加载;
d)如果资源解析器支持懒加载,则对资源引用关系进行缓存,其关键字为资源所在模块的相对路径URI;
e)用户从资源模型缓存中根据资源URI取得资源模型时,如果从资源缓存模型中未找到所对应的资源,则从资源引用关系缓存中查找此资源URI对应的资源物理信息,如果存在,则调用此资源对应解析器实例的loadResource方法,对资源进行加载。
(36)缓存资源解析后的模型,包括以下步骤:
a)调用源解析器实例的loadResource方法后,形成资源对应的模型对象;
b)对资源模型对象缓存,其关键字为资源所在模块的相对路径URI,值为对应的模型对象。
(37)执行资源解析后的拦截器,包括以下步骤:
a)遍历缓存中的所有的资源类型列表;
b)根据资源类型从资源类型与物理资源的映射列表中查找对应的物理资源;
c)根据资源类型属性从资源类型与拦截器实例映射列表缓存中查找对应的资源拦截器实例列表;
d)遍历查找到的资源拦截器实例列表;
e)执行资源拦截器实例的doAfter方法,把资源列表作为输入参数传递到拦截器中;
f)如果资源解析执行时出现错误,则执行资源拦截器实例的doException方法,把资源列表以及发生的异常作为输入参数传递到拦截器中。
该实施例中的运行期热更新线程的监听包括以下步骤,其流程图如图9所示:
(41)资源热更新线程的编写,包括以下步骤:
a)设置资源变更的扫描时间的设置单位,通常设置为秒;
b)设置监听资源变更的时间间隔,通常设置为5就可以了,即每5秒扫描一次。
(42)遍历模块对应的目录,查找变更的资源,包括以下步骤:
a)遍历模块对应的目录以及子目录,查找对应的资源;
b)根据查找到的资源路径列表,与资源列表缓存进行比对;
c)查找到的资源在资源列表缓存中存在,但时间戳不同,则表示此资源已修改;
d)查找到的资源在资源列表缓存中不存在,则表示此资源为新增;
e)反向查找资源列表缓存,如果资源列表缓存中存在但在查找到的资源列表中不存在,则表示此资源已删除;
f)对新增、修改、删除的资源形成资源变更列表。
(43)对变更资源按资源解析器的配置进行资源的分类,包括以下步骤:
a)从缓存中的资源类型与解析器实例映射列表中计算出所有的资源类型列表,此资源列表已按设置的优先级进行了排序;
b)遍历资源变更列表中的所有资源;
c)按资源类型设置,对资源进行分类,形成资源类型与物理资源的映射列表。
(44)执行变更资源解析前的拦截器,包括以下步骤:
a)遍历变更的资源类型与物理资源的映射列表;
b)根据资源类型属性从资源类型与拦截器实例映射列表缓存中查找对应的资源拦截器实例列表;
c)遍历查找到的资源拦截器实例列表;
d)执行资源拦截器实例的doBefore方法,把变更资源列表作为输入参数传递到拦截器中。
(45)针对分类变更资源调用不同的资源解析器进行资源解析,包括以下步骤:
a)遍历变更的资源类型与物理资源的映射列表;
b)根据资源类型属性从资源类型与资源解析器实例映射列表缓存中查找对应的资源解析器实例列表;
c)遍历查找到的资源解析器实例列表;
d)执行资源解析器实例的loadResource方法,把变更资源列表作为输入参数传递到拦截器中。
(46)判断变更资源解析器是否支持懒加载,包括以下步骤:
a)执行资源解析器实例的isSupportLazyLoading方法;
b)如果返回为真,则表示此资源解析器支持懒加载;如果返回为假,则表示此资源解析器不支持懒加载;
c)如果资源解析器不支持懒加载,则调用资源解析器对变更资源执行资源加载;
d)如果资源解析器支持懒加载,则更新资源引用关系缓存,其关键字为资源所在模块的相对路径URI。
(47)变更缓存中资源解析的模型,包括以下步骤:
a)调用源解析器实例的loadResource方法后,形成变更资源对应的模型对象;
b)更新资源模型对象缓存,其关键字为资源所在模块的相对路径URI,值为资源变更后对应的模型对象。
(48)执行变更资源解析后的拦截器,包括以下步骤:
a)遍历变更的资源类型与物理资源的映射列表;
b)根据资源类型属性从资源类型与拦截器实例映射列表缓存中查找对应的资源拦截器实例列表;
c)遍历查找到的资源拦截器实例列表;
d)执行变资源拦截器实例的doAfter方法,把变更资源列表作为输入参数传递到拦截器中;
e)如果资源解析执行时出现错误,则执行资源拦截器实例的doException方法,把变更资源列表以及发生的异常作为输入参数传递到拦截器中。
经过以上步骤,企业应用系统中针对页面流资源处理包括资源解析以及资源热更新过程全部完成,从中可以得出采用了该发明的企业分布式应用系统中实现资源加载以及资源热更新的方法,使得对资源的解析以及热更新工作变得简单而高效,当增加新的资源类型时,不再需要修改核心代码,可以完成以可插拔的方式进行资源处理器的注入。采用该发明的方法,对资源的处理以及解析过程更加直观,提高了开发的效率,快捷方便,系统运行效率较高,性能稳定可靠,降低了开发维护的成本;同时增强了系统可移植性和可扩展性,使用户专注于业务逻辑的处理;不仅如此,该方法还能够快速适应业务需求的变化和技术变化,能够支撑建立高度模块化而且又高度整合的软件系统,适用范围较为广泛,为企业应用中对资源的管理打下了坚实的基础。
在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。

Claims (27)

1.一种企业分布式应用系统中实现资源加载以及资源热更新的方法,其特征在于,所述的方法包括:开发期实现资源解析器接口和拦截器接口并配置格式定义的操作、运行期对资源加载配置文件解析的操作、运行期模块资源加载的操作以及运行期热更新线程监听的操作;
所述的开发期实现资源解析器接口和拦截器接口并配置格式定义的操作,包括以下步骤:
(11)新建资源解析扩展包;
(12)编写实现资源解析器接口的实现类;
(13)编写实现资源拦截器接口的实现类;
(14)配置资源解析器、拦截器与资源的映射规则;
(15)将资源解析器扩展包部署到运行环境中;
所述的运行期对资源加载配置文件解析的操作,包括以下步骤:
(21)提供支持资源解析器扩展的接口类,以供扩展;
(22)提供支持资源拦截器扩展的接口类,以供扩展;
(23)加载定义的资源解析器、拦截器与资源映射规则配置文件;
(24)根据对配置文件的解析形成资源与解析器的映射列表;
(25)根据对配置文件的解析形成资源与拦截器的映射列表;
(26)对资源与解析器的映射列表按优先级进行排序;
所述的运行期模块资源加载的操作,包括以下步骤:
(31)遍历模块下所有资源,并缓存;
(32)对资源按资源解析器的配置进行资源的分类;
(33)执行资源解析前的拦截器;
(34)针对分类资源调用不同的资源解析器进行资源解析;
(35)判断资源解析器是否支持懒加载;
(36)缓存资源解析后的模型;
(37)执行资源解析后的拦截器;
所述的运行期热更新线程监听的操作,包括以下步骤:
(41)资源热更新线程的编写;
(42)设置热更新线程的扫描间隔;
(43)遍历模块对应的目录,查找变更的资源;
(44)对变更资源按资源解析器的配置进行资源的分类;
(45)执行变更资源解析前的拦截器;
(46)针对分类变更资源调用不同的资源解析器进行资源解析;
(47)判断变更资源解析器是否支持懒加载;
(48)变更缓存中资源解析的模型;
(49)执行变更资源解析后的拦截器。
2.根据权利要求1所述的企业分布式应用系统中实现资源加载以及资源热更新的方法,其特征在于,所述的步骤(11)具体为:新建页面流资源解析扩展包,其包括以下步骤:
(11a)通过开发环境的“文件”菜单中新建子菜单,选择新建页面流资源解析扩展包;
(11b)输入页面流资源解析扩展包的名称,系统创建相应的目录结构;
(11c)生成页面流资源解析扩展包的资源树,包括配置、接口结点。
3.根据权利要求2所述的企业分布式应用系统中实现资源加载以及资源热更新的方法,其特征在于,所述的步骤(12)具体为:编写实现页面流资源解析器接口的实现类,其包括以下步骤:
(12a)新建Java Class,实现资源加载的接口IResourceLoader;
(12b)实现资源加载的接口中的loadResource资源加载方法,对资源进行解析,转换为资源的内存模型;
(12c)对新增资源进行解析处理;
(12d)对修改资源进行解析处理;
(12e)对删除资源进行解析处理;
(12f)设置资源是否支持懒加载,本页面流资源支持懒加载。
4.根据权利要求3所述的企业分布式应用系统中实现资源加载以及资源热更新的方法,其特征在于,所述的步骤(13)具体为:编写实现页面流资源拦截器接口的实现类,其包括以下步骤:
(13a)新建Java Class,实现资源拦截器的接口IResourceHandler;
(13b)实现资源拦截器的接口中的doBefore前执行、doAfter后执行、doException异常执行方法,对资源解析前后进行拦截;
(13c)对资源解析前拦截器处理;
(13d)对资源解析后拦截器处理;
(13e)对资源解析出错后拦截器处理。
5.根据权利要求4所述的企业分布式应用系统中实现资源加载以及资源热更新的方法,其特征在于,所述的步骤(14)具体为:配置页面流资源解析器、拦截器与资源的映射规则,其包括以下步骤:
(14a)在资源解析扩展包中资源树下的“配置”结点下新建资源处理器配置文件ResourceProcessor.xml;
(14b)在文件中配置资源处理的解析器、拦截器以及优先级。
6.根据权利要求5所述的企业分布式应用系统中实现资源加载以及资源热更新的方法,其特征在于,所述的步骤(15)具体为:页面流资源解析器扩展包部署到运行环境中,其包括以下步骤:
(15a)在资源解析扩展包资源树上选择“部署”菜单;
(15b)资源解析对应扩展包下的资源按目录结构部署到运行环境中。
7.根据权利要求1至6中任一项所述的企业分布式应用系统中实现资源加载以及资源热更新的方法,其特征在于,所述的步骤(21)具体包括以下步骤:
(21a)定义资源解析器操作的接口类IResourceLoader,供用户扩展,接口中包括对新增、修改、删除资源的处理以及设置解析器是否支持懒加载;
(21b)提供根据资源类型获取资源解析器的工厂类ResourceLoaderFactory。
8.根据权利要求7所述的企业分布式应用系统中实现资源加载以及资源热更新的方法,其特征在于,所述的步骤(22)具体包括以下步骤:
(22a)定义资源拦截器操作的接口类IResourceHandler,供用户扩展,接口中包括对资源解析前、后以及发生异常的处理;
(22b)提供根据资源类型获取拦截器的工厂类ResourceHandlerFactory。
9.根据权利要求8所述的企业分布式应用系统中实现资源加载以及资源热更新的方法,其特征在于,所述的步骤(23)具体包括以下步骤:
(23a)遍历应用类路径下所有的资源处理器配置文件ResourceProcessor.xml,形成处理器文件列表;
(23b)循环解析处理器文件列表中的文件;
(23c)针对每个处理器节点的资源处理器resourceProcessor,形成处理器描述模型ResourceProcessor;
(23d)对处理器描述模型ResourceProcessor设置其资源类型属性;
(23e)对处理器描述模型ResourceProcessor设置其优先级属性;
(23f)对处理器描述模型ResourceProcessor设置其解析器属性,并对解析器实例化;
(23g)对处理器描述模型ResourceProcessor设置其拦截器属性,并对拦截器实例化。
10.根据权利要求9所述的企业分布式应用系统中实现资源加载以及资源热更新的方法,其特征在于,所述的步骤(24)具体包括以下步骤:
(24a)遍历所有处理器描述模型ResourceProcessor对应的列表;
(24b)读取处理器描述模型ResourceProcessor中的资源类型属性和对应的解析器实例;
(24c)资源类型属性和对应的解析器实例形成映射列表。
11.根据权利要求10所述的企业分布式应用系统中实现资源加载以及资源热更新的方法,其特征在于,所述的步骤(25)具体包括以下步骤:
(25a)遍历所有处理器模型ResourceProcessor对应的列表;
(25b)读取处理器模型ResourceProcessor中的资源类型属性和对应的拦截器实例;
(25c)资源类型属性和对应的拦截器实例形成映射列表;
(25d)对资源类型属性和对应的拦截器实例形成映射列表进行缓存。
12.根据权利要求11所述的企业分布式应用系统中实现资源加载以及资源热更新的方法,其特征在于,所述的步骤(26)具体包括以下步骤:
(26a)遍历所有处理器模型ResourceProcessor对应的列表;
(26b)读取资源类型属性与优先级,形成映射关系列表;
(26c)对资源类型属性与优先级映射关系列表按优先级排序;
(26d)遍历资源类型属性和对应的解析器实例形成映射列表;
(26e)按优先级的排序顺序,对解析器实例按同样规则进行排序;
(26f)缓存排序后的资源类型与解析器实例映射列表。
13.根据权利要求12所述的企业分布式应用系统中实现资源加载以及资源热更新的方法,其特征在于,所述的步骤(31)具体包括以下步骤:
(31a)查找模块资源所在的根目录;
(31b)遍历资源根目录下的一级子目录以及资源;
(31c)递归遍历子目录,遍历其下的子目录以及资源;
(31d)资源放入资源列表缓存,以资源所在的模块绝对路径为关键字,包括资源的修改时间、绝对路径列表。
14.根据权利要求13所述的企业分布式应用系统中实现资源加载以及资源热更新的方法,其特征在于,所述的步骤(32)具体包括以下步骤:
(32a)从缓存中的资源类型与解析器实例映射列表中计算出所有的已按设置的优先级进行了排序的资源类型列表;
(32b)遍历模块资源缓存中的所有资源;
(32c)按资源类型设置,对资源进行分类,形成资源类型与物理资源的映射列表。
15.根据权利要求14所述的企业分布式应用系统中实现资源加载以及资源热更新的方法,其特征在于,所述的步骤(33)具体包括以下步骤:
(33a)遍历缓存中的所有的资源类型列表;
(33b)根据资源类型从资源类型与物理资源的映射列表中查找对应的物理资源;
(33c)根据资源类型属性从资源类型与拦截器实例映射列表缓存中查找对应的资源拦截器实例列表;
(33d)遍历查找到的资源拦截器实例列表;
(33e)执行资源拦截器实例的doBefore前执行方法,把资源列表作为输入参数传递到拦截器中。
16.根据权利要求15所述的企业分布式应用系统中实现资源加载以及资源热更新的方法,其特征在于,所述的步骤(34)具体包括以下步骤:
(34a)遍历缓存中的所有的资源类型列表;
(34b)根据资源类型从资源类型与物理资源的映射列表中查找对应的物理资源;
(34c)根据资源类型属性从资源类型与资源解析器实例映射列表缓存中查找对应的资源解析器实例列表;
(34d)遍历查找到的资源解析器实例列表;
(34e)执行资源解析器实例的loadResource资源加载方法,把资源列表作为输入参数传递到拦截器中。
17.根据权利要求16所述的企业分布式应用系统中实现资源加载以及资源热更新的方法,其特征在于,所述的步骤(35)具体包括以下步骤:
(35a)执行资源解析器实例的isSupportLazyLoading是否支持懒加载方法;
(35b)如果返回为真,则表示此资源解析器支持懒加载;如果返回为假,则表示此资源解析器不支持懒加载;
(35c)如果资源解析器不支持懒加载,则调用资源解析器执行资源加载;
(35d)如果资源解析器支持懒加载,则对资源引用关系进行缓存,其关键字为资源所在模块的相对路径URI;
(35e)用户从资源模型缓存中根据资源URI取得资源模型时,如果从资源缓存模型中未找到所对应的资源,则从资源引用关系缓存中查找此资源URI对应的资源物理信息,如果存在,则调用此资源对应解析器实例的loadResource资源加载方法,对资源进行加载。
18.根据权利要求17所述的企业分布式应用系统中实现资源加载以及资源热更新的方法,其特征在于,所述的步骤(36)具体包括以下步骤:
(36a)调用源解析器实例的loadResource资源加载方法后,形成资源对应的模型对象;
(36b)对资源模型对象缓存,其关键字为资源所在模块的相对路径URI,值为对应的模型对象。
19.根据权利要求18所述的企业分布式应用系统中实现资源加载以及资源热更新的方法,其特征在于,所述的步骤(37)具体包括以下步骤:
(37a)遍历缓存中的所有的资源类型列表;
(37b)根据资源类型从资源类型与物理资源的映射列表中查找对应的物理资源;
(37c)根据资源类型属性从资源类型与拦截器实例映射列表缓存中查找对应的资源拦截器实例列表;
(37d)遍历查找到的资源拦截器实例列表;
(37e)执行资源拦截器实例的doAfter后执行方法,把资源列表作为输入参数传递到拦截器中;
(37f)如果资源解析执行时出现错误,则执行资源拦截器实例的doException异常执行方法,把资源列表以及发生的异常作为输入参数传递到拦截器中。
20.根据权利要求19所述的企业分布式应用系统中实现资源加载以及资源热更新的方法,其特征在于,所述的步骤(42)具体包括以下步骤:
(42a)设置资源变更的扫描时间的设置单位;
(42b)设置监听资源变更的时间间隔。
21.根据权利要求20所述的企业分布式应用系统中实现资源加载以及资源热更新的方法,其特征在于,所述的步骤(43)具体包括以下步骤:
(43a)遍历模块对应的目录以及子目录,查找对应的资源;
(43b)根据查找到的资源路径列表,与资源列表缓存进行比对;
(43c)查找到的资源在资源列表缓存中存在,但时间戳不同,则表示此资源已修改;
(43d)查找到的资源在资源列表缓存中不存在,则表示此资源为新增;
(43e)反向查找资源列表缓存,如果资源列表缓存中存在但在查找到的资源列表中不存在,则表示此资源已删除;
(43f)对新增、修改、删除的资源形成资源变更列表。
22.根据权利要求21所述的企业分布式应用系统中实现资源加载以及资源热更新的方法,其特征在于,所述的步骤(44)具体包括以下步骤:
(44a)从缓存中的资源类型与解析器实例映射列表中计算出所有的已按设置的优先级进行排序的资源类型列表;
(44b)遍历资源变更列表中的所有资源;
(44c)按资源类型设置,对资源进行分类,形成资源类型与物理资源的映射列表。
23.根据权利要求22所述的企业分布式应用系统中实现资源加载以及资源热更新的方法,其特征在于,所述的步骤(45)具体包括以下步骤:
(45a)遍历变更的资源类型与物理资源的映射列表;
(45b)根据资源类型属性从资源类型与拦截器实例映射列表缓存中查找对应的资源拦截器实例列表;
(45c)遍历查找到的资源拦截器实例列表;
(45d)执行资源拦截器实例的doBefore前执行方法,把变更资源列表作为输入参数传递到拦截器中。
24.根据权利要求23所述的企业分布式应用系统中实现资源加载以及资源热更新的方法,其特征在于,所述的步骤(46)具体包括以下步骤:
(46a)遍历变更的资源类型与物理资源的映射列表;
(46b)根据资源类型属性从资源类型与资源解析器实例映射列表缓存中查找对应的资源解析器实例列表;
(46c)遍历查找到的资源解析器实例列表;
(46d)执行资源解析器实例的loadResource资源加载方法,把变更资源列表作为输入参数传递到拦截器中。
25.根据权利要求24所述的企业分布式应用系统中实现资源加载以及资源热更新的方法,其特征在于,所述的步骤(47)具体包括以下步骤:
(47a)执行资源解析器实例的isSupportLazyLoading是否支持懒加载方法;
(47b)如果返回为真,则表示此资源解析器支持懒加载;如果返回为假,则表示此资源解析器不支持懒加载;
(47c)如果资源解析器不支持懒加载,则调用资源解析器对变更资源执行资源加载;
(47d)如果资源解析器支持懒加载,则更新资源引用关系缓存,其关键字为资源所在模块的相对路径URI。
26.根据权利要求25所述的企业分布式应用系统中实现资源加载以及资源热更新的方法,其特征在于,所述的步骤(48)具体包括以下步骤:
(48a)调用源解析器实例的loadResource资源加载方法后,形成变更资源对应的模型对象;
(48b)更新资源模型对象缓存,其关键字为资源所在模块的相对路径URI,值为资源变更后对应的模型对象。
27.根据权利要求26所述的企业分布式应用系统中实现资源加载以及资源热更新的方法,其特征在于,所述的步骤(49)具体包括以下步骤:
(49a)遍历变更的资源类型与物理资源的映射列表;
(49b)根据资源类型属性从资源类型与拦截器实例映射列表缓存中查找对应的资源拦截器实例列表;
(49c)遍历查找到的资源拦截器实例列表;
(49d)执行资源拦截器实例的doAfter后执行方法,把变更资源列表作为输入参数传递到拦截器中;
(49e)如果资源解析执行时出现错误,则执行资源拦截器实例的doException异常执行方法,把变更资源列表以及发生的异常作为输入参数传递到拦截器中。
CN201110270105.5A 2011-09-13 2011-09-13 企业分布式应用系统中实现资源加载及资源热更新的方法 Active CN102436373B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110270105.5A CN102436373B (zh) 2011-09-13 2011-09-13 企业分布式应用系统中实现资源加载及资源热更新的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110270105.5A CN102436373B (zh) 2011-09-13 2011-09-13 企业分布式应用系统中实现资源加载及资源热更新的方法

Publications (2)

Publication Number Publication Date
CN102436373A CN102436373A (zh) 2012-05-02
CN102436373B true CN102436373B (zh) 2014-05-14

Family

ID=45984453

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110270105.5A Active CN102436373B (zh) 2011-09-13 2011-09-13 企业分布式应用系统中实现资源加载及资源热更新的方法

Country Status (1)

Country Link
CN (1) CN102436373B (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103067511B (zh) * 2012-12-28 2016-03-30 上海寰创通信科技股份有限公司 一种http请求处理的控制方法
CN105095280B (zh) * 2014-05-13 2020-02-14 腾讯科技(深圳)有限公司 一种浏览器缓存方法和装置
CN105045619B (zh) * 2015-07-06 2018-07-10 普元信息技术股份有限公司 云计算环境中基于固定带宽的多层次多节点版本分发方法
CN105068852A (zh) * 2015-09-22 2015-11-18 普元信息技术股份有限公司 云计算环境下实现Java类在线热更新的系统与方法
CN106610996B (zh) * 2015-10-23 2022-03-11 北京奇虎科技有限公司 热词典切换方法和装置
CN106155750B (zh) * 2016-07-29 2018-09-07 腾讯科技(深圳)有限公司 一种资源文件的加载方法和装置
CN106569863B (zh) * 2016-11-10 2020-01-17 福州智永信息科技有限公司 基于资源和代码模块化的安卓app资源更新和修复的方法
CN106649766B (zh) * 2016-12-27 2020-12-29 北京锐安科技有限公司 一种基于kafka的消息处理方法
CN109241474B (zh) * 2017-07-11 2022-08-05 阿里巴巴集团控股有限公司 页面信息的提供、展示、发布方法、服务器及客户端
CN107436770B (zh) * 2017-08-11 2020-10-20 苏州浪潮智能科技有限公司 一种计算机资源生成方法、系统及计算机
CN109408134B (zh) * 2017-08-16 2022-04-08 阿里巴巴集团控股有限公司 模型文件的处理方法、装置、系统以及处理设备
CN110019055A (zh) * 2018-06-06 2019-07-16 平安普惠企业管理有限公司 无配置文件压缩方法、压缩装置、压缩终端及存储介质
CN109491689A (zh) * 2018-11-20 2019-03-19 中国建设银行股份有限公司 客户端处理方法、装置及系统
CN110297637B (zh) * 2019-06-06 2023-03-31 北京网聘信息技术有限公司 全平台客户端软件适用的资源文件热重载开发工具及方法
CN112114895A (zh) * 2020-08-25 2020-12-22 通号城市轨道交通技术有限公司 一种轨道交通控制系统数据和程序分离方法及装置
CN112905204B (zh) * 2021-02-23 2024-05-07 杭州推啊网络科技有限公司 Tensorflow模型的更新方法与系统
CN117785332B (zh) * 2024-02-28 2024-05-28 国维技术有限公司 一种虚拟三维空间动态资源加载释放方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101639777A (zh) * 2009-09-07 2010-02-03 李元 一种构件的即插即用方法、应用及其系统
CN101739458A (zh) * 2009-12-02 2010-06-16 中兴通讯股份有限公司 多语化资源的更新方法和系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101639777A (zh) * 2009-09-07 2010-02-03 李元 一种构件的即插即用方法、应用及其系统
CN101739458A (zh) * 2009-12-02 2010-06-16 中兴通讯股份有限公司 多语化资源的更新方法和系统

Also Published As

Publication number Publication date
CN102436373A (zh) 2012-05-02

Similar Documents

Publication Publication Date Title
CN102436373B (zh) 企业分布式应用系统中实现资源加载及资源热更新的方法
CN111666585B (zh) 子应用访问的方法、装置、电子设备以及可读存储介质
US10853154B2 (en) Orchestration of a sequence of computations by external systems
Allen et al. The grid application toolkit: toward generic and easy application programming interfaces for the grid
Rosenberg et al. An end-to-end approach for QoS-aware service composition
US8140578B2 (en) Multilevel hierarchical associations between entities in a knowledge system
US20110154226A1 (en) Chip model of an extensible plug-in architecture for enterprise mashups
Alameda et al. The Open Grid Computing Environments collaboration: portlets and services for science gateways
US9900374B2 (en) Application bundle management across mixed file system types
US20080216069A1 (en) Provisioning of software components via workflow management systems
US20070118414A1 (en) Business process system management method
KR20070049166A (ko) 목표 기기 상에서의 종속 소프트웨어 패키지의 검출 및이용을 자동화하기 위한 방법 및 소프트웨어 리포지터리를생성하기 위한 시스템
CN104317591A (zh) 一种基于OSGi的web界面框架系统及web业务处理方法
KR101355273B1 (ko) 컴퓨팅 시스템 및 그 실행 제어 방법과, 그 실행 제어 프로그램을 기록한 기록 매체
CN111258565A (zh) 小程序的生成方法、系统、服务器及存储介质
US10133766B2 (en) Accessing and editing virtually-indexed message flows using structured query langauge (SQL)
US20210224102A1 (en) Characterizing operation of software applications having large number of components
Bernaschina et al. A big data analysis framework for model-based web user behavior analytics
Haytamy et al. ICSD: integrated cloud services dataset
CN104133762A (zh) 软件测试方法及测试装置
US20220337620A1 (en) System for collecting computer network entity information employing abstract models
Bröring et al. NOVA: a knowledge base for the Node-RED IoT ecosystem
Lazovik et al. Runtime modifications of spark data processing pipelines
Ma et al. DroidLink: Automated generation of deep links for Android apps
Keivanloo et al. Semantic Web-The missing link in global source code analysis?

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent for invention or patent application
CB02 Change of applicant information

Address after: 201203, Shanghai Zhangjiang hi tech park, Pudong New Area, No. 456 blue wave road, 4F

Applicant after: PRIMETON INFORMATION TECHNOLOGY CO., LTD.

Address before: 201203, Shanghai Zhangjiang hi tech park, Pudong New Area, No. 456 blue wave road, 4F

Applicant before: Primeton Technologies Ltd.

COR Change of bibliographic data

Free format text: CORRECT: APPLICANT; FROM: PRIMETON TECHNOLOGIES LTD. TO: PRIMETON INFORMATION TECHNOLOGY CO., LTD.

C14 Grant of patent or utility model
GR01 Patent grant