基于JSF开发框架的内存优化系统及方法转让专利

申请号 : CN200910303455.X

文献号 : CN101576824B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张利

申请人 : 深圳市科陆电子科技股份有限公司

摘要 :

本发明涉及一种基于JSF开发框架的内存优化系统及方法。所述系统中的所有作用范围为整个对话范围内的可管理类对象都继承至同一父类;所述父类的包括清除管理类对象模块,其中,所述多个管理类对象通过所述清除管理类对象模块与所述父类连接。所述方法包括:第一步,所有作用范围为整个对话的可管理类对象都继承至同一父类;第二步,在作用范围为整个对话的管理类对象初始化加载中,调用父类的构造函数从整个对话中移除其它管理类对象。本发明使每个对话在一个对话过程中只保留一个当前正在调用的管理类对象的实例,极大的减轻了服务器的内存需求;保证每个对话请求中只保留一个当前正请求类对象的实例;提高WEB程序的响应速度及服务器内管理性能。

权利要求 :

1.一种基于JSF开发框架的内存优化系统,其特征在于:所述基于JSF开发框架的内存优化系统中所有作用范围为整个对话范围的管理类对象都继承于同一父类,所述父类包括清除管理类对象模块,其中,所述多个管理类对象通过所述清除管理类对象模块与所述父类连接,所述清除管理类对象模块为所述父类的构造函数中包含移除整个对话中除了当前访问页面绑定的管理类对象的名称的其它管理类对象的实例的清除管理类对象模块,所述清除管理类对象模块包括:用于通过浏览器访问功能页面的WEB页面加载模块(101),用于页面加载时产生一个新的实例的管理类对象加载模块(102),用于新实例在实初始化时调用父类的构造函数清除当前正在调用的管理类对象的其它管理类对象的父类的清除管理类对象模块(103)。

2.一种基于JSF开发框架的内存优化方法,其特征在于: 所述方法包括以下步骤:A. 作用范围为整个对话范围的管理类对象继承至同一父类;

B. 在作用范围为整个对话范围的管理类对象初始化加载中,调用父类的构造函数中的清除管理类对象方法,从整个对话中移除其它管理类对象;其中,所述步骤B进一步包括以下子步骤:

B1. 加载WEB页面,调用WEB页面绑定的管理类对象,生成相应的管理对象的实例;

B2. 在管理类对象的初始化过程中,调用父类的构造函数;

B3. 在父类的构造函数中,调用清除管理类对象的方法移除整个对话中除了当前调用管理类对象的其它管理类对象的实例。

3.根据权利要求2所述的基于JSF开发框架的内存优化方法,其特征在于:所述清除理类对象方法具体步骤如下: 首先,通过系统上下文中得到一个保存对话变量的集合对象;

其次,迭代包含所有管理类对象名称的数组变量,如果迭代出的对象名称不等于当前正在调用的管理类对象的名称,则从对话变量集合中移除这个对象。

说明书 :

基于JSF开发框架的内存优化系统及方法

【技术领域】

[0001] 本发明涉及利用JSF(JavaServerFaces)框架进行WEB开发领域,特别涉及一种基于JSF开发框架的内存优化系统及方法。【背景技术】
[0002] 随着J2EE1.5的发布,JSF(JavaServerFaces)已成为了JAVA WEB开发的标准框架,JSF提供了一种以组件为中心的用户界面(UI)构建方法,从而简化了JAVA服务器端应用程序的开发。JSF引入了基于组件和事件驱动的开发模式,使开发人员可以使用类似于处理传统界面的方式来开发Web应用程序。提供了行为与表达的清晰分离。不用特别的脚本语言或者标记语言来连接UI组件和Web层。技术为管理组件状态提供一个丰富的体系机构、处理组件数据、确认用户输入和操作事件。但在大型的应用系统开发中,JSF框架的WEB服务器端需要管理大量的作为范围为整个对话的管理类对象,这样随着对话的增加就会产生大量的类实例,在整个会话过程中大量请求过的作为范围为整个对话的类对象实例会占用很大的内存,从而对服务器的内存造成很大的压力,影响整个WEB的响应速度。【发明内容】
[0003] 为了解决现有技术在大型的应用系统开发中,JSF框架的WEB服务器端需要管理大量的作用范围为整个对话的管理类对象,这样随着会话的增加就会产生大量的类实例,在整个会话过程中大量请求过的会话类型为整个对话的实例会占用很大的内存,从而对服务器的内存造成很大的压力,影响整个WEB的响应速度的技术问题,本发明提供了一种基于JSF开发框架的内存优化系统及方法。
[0004] 本发明解决现有技术存在的问题所采用的技术方案是:提供一种基于JSF开发框架的内存优化系统。所述JSF开发框架的内存优化系统中的所有作用范围为整个对话的管理类对象都继承至同一父类;所述父类的构造函数中包含移除整个对话中除了当前调用管理类对象的其它管理类对象的实例的清除管理类对象模块,其中,所述多个管理类对象通过所述清除管理类对象模块与所述父类连接。
[0005] 根据本发明所述的基于JSF开发框架的内存优化系统的一优选技术方案:所述清除管理类对象模块为所述父类的构造函数中包含移除整个对话中除了当前访问页面绑定的管理类对象的名称的其它管理类对象的实例的清除管理类对象模块。
[0006] 根据本发明所述的基于JSF开发框架的内存优化系统的一优选技术方案:所述清除管理类对象模块包括:用于通过浏览器访问功能页面的WEB页面加载模块,用于页面加载时产生一个新的实例的管理类对象加载模块,用于新实例在实初始化时调用父类的构造函数清除除当前正在调用的管理类对象的其它管理类对象的父类的清除管理类对象模块。
[0007] 本发明提供一种基于JSF开发框架的内存优化方法,包括以下步骤:
[0008] 第一步.所有作用范围为整个对话的管理类对象都继承至同一父类;
[0009] 第二步.在作用范围为整个对话的管理类对象初始化加载中,调用父类的构造函数中的清除管理类对象方法,从整个对话中移除其它作用范围为整个对话的管理类对象。
[0010] 根据本发明所述的基于JSF开发框架的内存优化方法一优选技术方案:所述步骤第二步进一步包括以下子步骤:
[0011] 首先,加载WEB页面,调用WEB页面绑定的管理类对象,生成相应的管理类对象的实例;
[0012] 其次,在管理类对象初始化过程中,调用父类的构造函数;
[0013] 最后,在父类的构造函数中,调用清除管理类对象方法移除整个对话中除了当前正在调用的管理类对象的其它管理类对象的实例。
[0014] 根据本发明所述的基于JSF开发框架的内存优化方法一优选技术方案:所述清除管理类对象方法具体步骤如下:首先,通过系统上下文中得到一个保存对话变量的集合对象;其次,迭代包含所有管理类对象名称的数组变量,如果迭代出的对象名称不等于当前正在访问的管理类对象的名称,则从对话变量集合中移除这个对象。
[0015] 采用上述方法时,本方法通过在系统中使所有管理类对象都继承至同一父类,通过调用父类的构造函数来处理整个对话中的管理类对象,使每个对话在一个对话过程中只保留一个当前正在访问的管理类对象的实例,极大的减轻了服务器的内存需求;使WEB应用服务器对应用系统进中请求过的作用范围为整个对话的管理类对象进行更好的内存的管理,保证每个对话请求中只保留一个当前正请求管理类对象的实例;提高WEB程序的响应速度,提高了服务器内存管理性能。【附图说明】
[0016] 图1是本发明基于JSF开发框架的内存优化系统的框架结构图;
[0017] 图2是本发明基于JSF开发框架的内存优化系统清除管理类对象模块框架图;
[0018] 图3是本发明基于JSF开发框架的内存优化方法的流程图;
[0019] 图4是本发明基于JSF开发框架的内存优化方法的清除其它Bean的实例的流程图;
[0020] 图5是本发明基于JSF开发框架的内存优化方法的清除管理类对象方法具体流程图。【具体实施方式】
[0021] 下面结合附图和实施例对本发明进行详细说明。
[0022] 参照图1,图1是是本发明基于JSF开发框架的内存优化系统的框架结构图。本实施例中,如图所示,子类1,子类2,子类3等等都是作用范围为整个对话的管理类对象,它们都继承至相同的父类AbstractParent,这样系统中的管理类对象都拥用共同的父类,都可执行父类的同一构造函数。在父类中有一个为beanNames的字符串数组类型的数据字段,所包含的都是为JSF框架管理的管理类对象的名称。所述父类的构造函数中包含移除整个对话中除了当前调用管理类对象的名称的其它管理类对象的实例的清除管理类对象模块。其中摳咐鄶是指所有子类的基类,所有继承自该类的对象都称为子类,所有子类都具有基类某些相同特性或方法(如子女会继承父亲的姓氏)。
[0023] 参照图2,图2是本发明基于JSF开发框架的内存优化系统清除管理类对象模块框架图。本实施例中,所述清除管理类对象模块包括:页面加载模块,清除管理类对象模块,页面显示模块。本实施例中当页面加载模块101进行页面加载前会得到页面绑定的管理类对象102的一个实例,在管理类对象102进行初始化中会调用父类的清除管理类对象103的方法清除对话对象中除当前实例的所有其它管理类对象实例。调用父类清除管理类对象的具体方法为:第一步.得到系统中对话变量实例(SessionMap)第二步.迭代包含所有管理对象名称的数据变量清除对话变量中除当前管理类对象的其它管理类对象的实例。
[0024] 所述第一步:从系统上下文中得到一个保存对话变量的集合对象SessionMap,此变量包含了系统中所有作用范围为对话范围的对象实例。
[0025] 所述第二步:迭代包含所有管理对象名称的数组变量,当迭代出的对象名称不等于当前正在访问的管理类对象实例名称时,则从对话变量SessionMap中移除该管理类对象实例。
[0026] 参照图3,图3是本发明基于JSF开发框架的内存优化方法的流程图。本实施例的方法通过对系统中所有作用范围为整个对话的管理类对象继承同一父类,然后在父类的构造函数中对整个对话除了当前页面加载绑定的管理类对象的实例的其它所有管理类对象进行移除达到优化内存的目的。
[0027] 参照图4,图4是本发明基于JSF开发框架的内存优化方法的清除其它管理类对象的实例的流程图。本实施例中,如图所示,父类有一个构造函数方法,和一个清除管理类对象方法(清除整个对话管理类对象方法)用来执行从整个对话中清除对应的管理类对象的实例。当WEB页面第一次加载时,会调用WEB页面绑定的管理类对象,会在内存中生成相应的管理类对象的实例,在管理类对象实始化过程中,会调用父类的构造函数。在父类的构造函数中会调用清除管理类对象方法(清除整个对话管理类对象方法)来移除整个对话中除了当前调用管理类对象的其它管理类对象的实例。
[0028] 请参照图5,图5是本发明基于JSF开发框架的内存优化方法的清除管理类对象方法具体流程图。本实施例中,所述清除管理类对象方法具体步骤如下:首先,通过系统上下文中得到一个保存对话变量的集合对象;其次,迭代包含所有管理类对象名称的数组变量,如果迭代出的对象名称不等于当前正在调用的管理类对象的名称,则从对话变量集合中移除这个对象。
[0029] 同理在其它管理类对象加载过程中也同样会在整个对话中移除除当前正在调用管理类对象的其它管理类对象的实例。这样在系统的当前会话中就只会保留一个当前正在请求的管理类对象的实例。极大的提高了服务器内存管理性能。
[0030] 本实施例的基于JSF开发框架的内存优化方法适用于利用JSF(JavaServer Faces)框架进行WEB开发的应用程序中。通过本方法能够使WEB应用服务器对应用系统进中请求过的作用范围为整个对话的管理类对象进行更好的内存的管理,保证每个对话请求中只保留一个当前正请求对象的实例。提高WEB程序的响应速度,提高了服务器内管理性能。
[0031] 采用上述方法时,本方法通过在系统中使所有管理类对象都继承至同一父类,通过调用父类的构造函数来处理整个对话中的管理类对象,使每个对话在一个对话过程中只保留一个当前正在访问的管理类对象的实例,极大的减轻了服务器的内存需求;使WEB应用服务器对应用系统进中请求过的会话类型为整个对话的管理类对象进行更好的内存的管理,保证每个对话请求中只保留一个当前正请求对象的实例;提高WEB程序的响应速度,提高了服务器内管理性能。
[0032] 以上内容是结合具体的优选技术方案对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。