CN106599085A - web***配置文件的自动刷新方法及装置 - Google Patents
web***配置文件的自动刷新方法及装置 Download PDFInfo
- Publication number
- CN106599085A CN106599085A CN201611049002.5A CN201611049002A CN106599085A CN 106599085 A CN106599085 A CN 106599085A CN 201611049002 A CN201611049002 A CN 201611049002A CN 106599085 A CN106599085 A CN 106599085A
- Authority
- CN
- China
- Prior art keywords
- configuration file
- refreshing
- web system
- web
- audiomonitor
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种web***配置文件的自动刷新装置,应用于web***,所述装置包括:注册模块,用于将需要自动刷新的配置文件注册到***;监听模块,用于在所述***启动后实时监听所述配置文件是否发生变化;自动刷新模块,用于在监听到所述配置文件发生变化时,通知所述web***自动刷新所述配置文件。本发明同时公开了一种web***配置文件的自动刷新方法。与现有技术相比,本发明实现了web***中对配置文件的自动刷新,而无需在改变配置文件后重新启动web服务器进行刷新,操作简便,且避免了重启web服务器对当前业务的中断,提高了web***的可服务性。
Description
技术领域
本发明涉及web***技术领域,尤其涉及一种web***配置文件的自动刷新方法及装置。
背景技术
Web***作为互联网功能的一种现实方式,是用户访问网站的载体。用户通过浏览器发出Web请求,Web***根据用户的Web请求,将被访问页面包括的静态资源与动态资源返回给浏览器,从而在浏览器上展现用户所要访问的页面。Web***中经常会用到配置文件,配置文件主要用来配置一些与环境相关的配置项,且这些配置项要求可配置,不能写死在代码中,以便实现无需修改代码就能够完成一些业务功能。
然而,目前大部分的web***都不支持自动刷新功能,在改变配置项后需要重新启动web服务器才能使配置项生效,同时,虽然有些开源的框架可以实现自动刷新,但是用起来都比较复杂,维护工作量大,不适用于小型的Web***。
因此,有必要提供一种web***配置文件的自动刷新方法及装置来解决上述技术问题。
发明内容
本发明的主要目的在于提出一种web***配置文件的自动刷新方法及装置,旨在解决现有技术中配置文件编辑后需重新启动web服务器才能进行更新,导致操作复杂、且会中断当前业务,服务性差的技术问题。
为实现上述目的,本发明提供了一种web***配置文件的自动刷新装置,应用于web***,所述装置包括:
注册模块,用于将需要自动刷新的配置文件注册到***;
监听模块,用于在所述***启动后实时监听所述配置文件是否发生变化;
自动刷新模块,用于在监听到所述配置文件发生变化时,通知所述web***自动刷新所述配置文件。
可选地,所述web***配置文件的自动刷新装置还包括:
监听类型设置模块,用于设置所述配置文件发生变化的监听类型,所述监听类型包括新增、删除和修改;
所述监听模块具体用于:
实时监听所述配置文件是否有新增、删除或修改,若监听到所述配置文件有新增、删除或修改,则判定所述配置文件发生变化。
可选地,所述web***配置文件的自动刷新装置还包括:
配置文件设置模块,用于为需要自动刷新的所述配置文件设置Watch Able接口。
可选地,所述监听模块用于:
通过所述web***的Watch Service类实时监听所述配置文件是否发生变化。
可选地,所述web***配置文件的自动刷新装置还包括:
列表提供模块,用于提供配置文件列表以供用户选择需要自动刷新的配置文件,其中所述配置文件列表中包括多个配置文件,各所述配置文件具有不同的存储目录。
与现有技术相比,本发明web***配置文件的自动刷新装置通过将需要自动刷新的配置文件注册到***,然后在***启动后实时监听所述配置文件是否发生变化,并在监听到配置文件发生变化时通知web***自动刷新配置文件,从而实现了web***中对配置文件的自动刷新,而无需在改变配置文件后重启web服务器进行刷新,操作简便,且避免了重启web服务器对当前业务的中断,提高了web***的可服务性。
本发明同时提供了一种web***配置文件的自动刷新方法,应用于web***,包括以下步骤:
将需要自动刷新的配置文件注册到***;
所述***启动后实时监听所述配置文件是否发生变化;
若监听到所述配置文件发生变化,则通知所述web***自动刷新所述配置文件。
可选地,所述实时监听所述配置文件是否发生变化之前还包括:
设置所述配置文件发生变化的监听类型,所述监听类型包括新增、删除和修改;
所述实时监听所述配置文件是否发生变化具体为:
实时监听所述配置文件是否有新增、删除或修改,若监听到所述配置文件有新增、删除或修改,则判定所述配置文件发生变化。
可选地,所述将需要自动刷新的配置文件注册到***之前还包括:
为需要自动刷新的所述配置文件设置Watch Able接口。
可选地,所述实时监听所述配置文件是否发生变化具体为:
通过所述web***的Watch Service类实时监听所述配置文件是否发生变化。
可选地,所述将需要自动刷新的配置文件注册到***之前还包括:
提供配置文件列表以供用户选择需要自动刷新的配置文件,其中所述配置文件列表中包括多个配置文件,各所述配置文件具有不同的存储目录。
与现有技术相比,本发明web***配置文件的自动刷新方法通过将需要自动刷新的配置文件注册到***,然后在***启动后实时监听所述配置文件是否发生变化,并在监听到配置文件发生变化时通知web***自动刷新配置文件,从而实现了web***中对配置文件的自动刷新,而无需在改变配置文件后重启web服务器进行刷新,操作简便,且避免了重启web服务器对当前业务的中断,提高了web***的可服务性。
附图说明
图1为本发明所述的web***配置文件的自动刷新装置第一实施例的模块示意图;
图2为本发明所述的web***配置文件的自动刷新装置第二实施例的模块示意图;
图3为本发明所述的web***配置文件的自动刷新方法第一实施例的实施流程示意图;
图4为本发明所述的web***配置文件的自动刷新方法第二实施例的实施流程示意图;
图5为本发明中设置配置文件的监听类型时一实施例的界面示意图;
图6为本发明中创建配置文件时一实施例的界面示意图;以及
图7为本发明中选择注册到***中的配置文件时一实施例的界面示意图。
附图标记:
web***配置文件的自动刷新装置 | 100 |
注册模块 | 101 |
监听模块 | 102 |
自动刷新模块 | 103 |
监听类型设置模块 | 104 |
配置文件设置模块 | 105 |
创建模块 | 106 |
列表提供模块 | 107 |
流程步骤 | S310-S330、S410-S470 |
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
现在将详细描述实现本发明各个实施例的web***。在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身并没有特定的意义。因此,“模块”与“部件”可以混合地使用。
Web(World Wide Web,也称WWW或万维网)是Internet上集文本、声音、动画、视频等多种媒体信息于一身的信息服务***,它起源于1989年3月,由欧洲量子物理实验室CERN(the European Laboratory for Particle Physics)所发展出来的主从结构分布式超媒体***。通过万维网,人们只要通过使用简单的方法,就可以很迅速方便地取得丰富的信息资料,由于用户在通过Web浏览器访问信息资源的过程中,无需再关心一些技术性的细节,而且界面非常友好,因而Web在Internet上一推出就受到了热烈的欢迎,走红全球,并迅速得到了***性的发展。通常,整个web***由web服务器(或web容器)、浏览器(Browser)及通信协议等3部分组成,当web浏览器(客户端)连接到web服务器上并请求文件时,web服务器将处理该请求并将文件反馈到该浏览器上,附带的信息会告诉浏览器如何查看该文件(即文件类型)。
具体的,web服务器是指驻留于因特网上某种类型计算机的程序,常用的web服务器有微软的信息服务器(iis)和Apache。通俗的讲,Web服务器传送(serves)页面使浏览器可以浏览,然而应用程序服务器提供的是客户端应用程序可以调用的方法。确切一点,Web服务器专门处理HTTP请求,但是应用程序服务器是通过很多协议来为应用程序提供商业逻辑。Web服务器可以解析HTTP协议,当Web服务器接收到一个HTTP请求,会返回一个HTTP响应,例如送回一个HTML页面。为了处理一个请求,Web服务器可以响应一个静态页面或图片,进行页面跳转,或者把动态响应的产生委托给一些其它的程序例如CGI脚本,JSP脚本,servlets,ASP脚本,服务器端JavaScript,或者一些其它的服务器端技术。无论它们(脚本)的目的如何,这些服务器端的程序通常产生一个HTML的响应来让浏览器可以浏览。
Web服务器的工作原理并不复杂,一般可分成如下4个步骤:连接过程、请求过程、应答过程以及关闭连接。下面对这4个步骤作一简单的介绍。连接过程就是Web服务器和其浏览器之间所建立起来的一种连接。查看连接过程是否实现,用户可以找到和打开socket这个虚拟文件,这个文件的建立意味着连接过程这一步骤已经成功建立。请求过程就是Web的浏览器运用socket这个文件向其服务器而提出各种请求。应答过程就是运用HTTP协议把在请求过程中所提出来的请求传输到Web的服务器,进而实施任务处理,然后运用HTTP协议把任务处理的结果传输到Web的浏览器,同时在Web的浏览器上面展示上述所请求之界面。关闭连接就是当上一个步骤--应答过程完成以后,Web服务器和其浏览器之间断开连接之过程。Web服务器上述4个步骤环环相扣、紧密相联,逻辑性比较强,可以支持多个进程、多个线程以及多个进程与多个线程相混合的技术。
Windows,Linux与Unix这3个操作***是架设Web服务器比较常见的操作***。Linux的安全性能在这3个操作***中最高,可以支持多个硬件平台,其网络功能比较强大。总的来说,这两大优点是其他操作***不可替代的:第一,可以依据用户不同的需求来随意修改、调整与复制各种程序的源码以及发布在互联网上;第二,Linux操作***的市场价格比较便宜,也能够在互联网上免费下载源码。可以说,Linux为架设既高效又安全的Web服务器的比较理想的操作***。此外,要让Web服务器更具有优越的性能,可以根据服务器***之特点与用途作进一步的优化与处理,尽量减少Web服务器的数据传输量以及降低其数据传输的频率,进而促进网络宽带的利用率与使用率,以及提高网络客户端的网页加载的速度,同时也可以减少Web服务器各种资源的消耗。
在UNⅨ和LINUX平台下使用最广泛的免费HTTP服务器是Apache和Nginx服务器,而Windows平台NT/2000/2003使用ⅡS的WEB服务器。在选择使用WEB服务器应考虑的本身特性因素有:性能、安全性、日志和统计、虚拟主机、代理服务器、缓冲服务和集成应用程序等,下面介绍几种常用的WEB服务器。
(1)Microsoft的Web服务器产品为Internet Information Services(IIS),IIS是允许在公共Intranet或Internet上发布信息的Web服务器。ⅡS是目前最流行的Web服务器产品之一,很多著名的网站都是建立在ⅡS的平台上。IIS提供了一个图形界面的管理工具,称为Internet服务管理器,可用于监视配置和控制Internet服务。IIS是一种Web服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。它提供ISAPI(Intranet Server API)作为扩展Web服务器功能的编程接口;同时,它还提供一个Internet数据库连接器,可以实现对数据库的查询和更新。
(2)kangle web服务器(简称:kangle)是一款跨平台、功能强大、安全稳定、易操作的高性能web服务器和反向代理服务器软件。除此:kangle也是一款专为做虚拟主机研发的web服务器。实现虚拟主机独立进程、独立身份运行。用户之间安全隔离,一个用户出问题不影响其他用户。安全支持php、asp、asp·net、java、ruby等多种动态开发语言。
(3)WebSphere Application Server是一种功能完善、开放的Web应用程序服务器,是IBM电子商务计划的核心部分,它是基于Java的应用环境,用于建立、部署和管理Internet和Intranet Web应用程序。这一整套产品进行了扩展,以适应Web应用程序服务器的需要,范围从简单到高级直到企业级。WebSphere针对以Web为中心的开发人员,他们都是在基本HTTP服务器和CGI编程技术上成长起来的。IBM将提供WebSphere产品系列,通过提供综合资源、可重复使用的组件、功能强大并易于使用的工具、以及支持HTTP和IIOP通信的可伸缩运行时环境,来帮助这些用户从简单的Web应用程序转移到电子商务世界。
(4)BEA WebLogic Server是一种多功能、基于标准的web应用服务器,为企业构建自己的应用提供了坚实的基础。各种应用开发、部署所有关键性的任务,无论是集成各种***和数据库,还是提交服务、跨Internet协作,起始点都是BEA WebLogic Server。由于它具有全面的功能、对开放标准的遵从性、多层架构、支持基于组件的开发,基于Internet的企业都选择它来开发、部署最佳的应用。BEA WebLogic Server在使应用服务器成为企业应用架构的基础方面继续处于领先地位。BEA WebLogic Server为构建集成化的企业级应用提供了稳固的基础,它们以Internet的容量和速度,在连网的企业之间共享信息、提交服务,实现协作自动化。
(5)Apache仍然是世界上用的最多的Web服务器,市场占有率达60%左右。它源于NCSAhttpd服务器,当NCSAWWW服务器项目停止后,那些使用NCSA WWW服务器的人们开始交换用于此服务器的补丁,这也是apache名称的由来(pache补丁)。世界上很多著名的网站都是Apache的产物,它的成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的Unix、Windows、Linux***平台上)以及它的可移植性等方面。
(5)Tomcat是一个开放源代码、运行servlet和JSP Web应用软件的基于Java的Web应用软件容器。Tomcat Server是根据servlet和JSP规范进行执行的,因此我们就可以说Tomcat Server也实行了Apache-Jakarta规范且比绝大多数商业应用软件服务器要好。Tomcat是Java Servlet 2.2和JavaServer Pages1.1技术的标准实现,是基于Apache许可证下开发的自由软件。Tomcat是完全重写的Servlet API 2.2和JSP 1.1兼容的Servlet/JSP容器。Tomcat使用了JServ的一些代码,特别是Apache服务适配器。随着CatalinaServlet引擎的出现,Tomcat第四版号的性能得到提升,使得它成为一个值得考虑的Servlet/JSP容器,因此许多WEB服务器都是采用Tomcat。
(6)Jboss是一个基于J2EE的开放源代码的应用服务器。JBoss代码遵循LGPL许可,可以在任何商业应用中***,而不用支付费用。JBoss是一个管理EJB的容器和服务器,支持EJB 1.1、EJB 2.0和EJB3的规范。但JBoss核心服务不包括支持servlet/JSP的WEB容器,一般与Tomcat或Jetty绑定使用。
web浏览器,是一种显示网页伺服器或档案***内的HTML文件(标准通用标记语言下的一个应用),并让用户与此些文件互动的一种软件。具体的,web浏览器通过HTTP协议连接网页伺服器而取得网页,HTTP容许网页浏览器送交资料到网页伺服器并且获取网页。目前最常用的HTTP是HTTP/1.1,这个协议在RFC2616中被完整定义。HTTP/1.1有其一套Internet Explorer并不完全支援的标准,然而许多其他当代的网页浏览器则完全支援这些标准。网页的位置以URL(统一资源定位符)指示,此乃网页的地址;以http:开首的便是通过HTTP协议登陆。很多浏览器同时支援其他类型的URL及协议,例如ftp:是FTP(档案传送协议)、gopher:是Gopher及https:是HTTPS(以SSL加密的HTTP)。网页通常使用超文本标记语言(标准通用标记语言下的一个应用)文件格式,并在HTTP协议内以MIME内容形式来定义。大部分浏览器均支援许多HTML以外的文件格式,例如JPEG、PNG和GIF图像格式,还可以利用外挂程式来支援更多文件类型。在HTTP内容类型和URL协议结合下,网页设计者便可以把图像、动画、视频、声音和流媒体包含在网页中,或让人们透过网页而取得它们。
基于上述web***,提出本发明的各个实施例。本发明的目的是提供一种web***配置文件的自动刷新方法及装置,所述装置包括:注册模块,用于将需要自动刷新的配置文件注册到***;监听模块,用于在所述***启动后实时监听所述配置文件是否发生变化;自动刷新模块,用于在监听到所述配置文件发生变化时,通知所述web***自动刷新所述配置文件。所述装置应用于上面所述的web***,用以解决现有技术中配置文件编辑后需重新启动web服务器才能进行更新,导致操作复杂、且会中断当前业务,服务性差的技术问题。
首先,本发明提出一种web***配置文件的自动刷新装置100,所述web***配置文件的自动刷新装置100适用于任一web***中。如图1所示,是本发明所述的web***配置文件的自动刷新装置100第一实施例的模块示意图。在本实施例中,所述web***配置文件的自动刷新装置100可以被分割成一个或多个模块,所述一个或多个模块被存储于存储器中,并由一个或多个控制器所执行,以完成本发明。例如,在图1中,所述web***配置文件的自动刷新装置100可以被分割成注册模块101、监听模块102以及自动刷新模块103。其中本发明所称的模块是指一种能够完成特定功能的一系列计算机程序指令段,比程序更适合于描述所述web***配置文件的自动刷新装置100在执行配置文件自动刷新时的实现过程。其中,本发明web***配置文件的自动刷新装置的实现过程利用了JDK1.7及以上版本的WatchService类,JDK(Java Development Kit)是Sun Microsystems针对Java开发员的产品,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境,JAVA工具和JAVA基础的类库。目前JDK已经成为使用最广泛的Java SDK。下面将就上述各模块101-103的具体功能进行详细描述。
所述注册模块101,用于将需要自动刷新的配置文件注册到***。如设定希望对配置文件A进行自动刷新,则将配置文件A注册到***中。当然,web***中会存在多个配置文件,多个配置文件分别位于不同的存储目录下,也可以设置对多个配置文件进行监听,请参考图7,图7为选择注册到***中的配置文件时的界面示意图,如图7所示,在一实施例中可以将配置文件A、B、C同时注册到***中。
***,实际上是一个实现了特定接口的类,用于监听一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,***某个方法将立即被执行。在web***中,监听就是在进行某种各个范围中有相关值的设置、修改、替换的时候,这些操作都会触发事件,而Java中事件的代理机制,事件处理是利用listener机制,所以为了在事件触发的时候能够使自己采取相应的措施,就需要继承这样的listener,在listener中覆写相应的方法,覆写相应的事件处理方法,在对应的方法中处理对应的事件,也就是进行了监听。在web***中,会将***这个类在web.xml文件中进行描述,从而web服务器在启动时即可实例化这个类,启动***。现有技术中,web***的***用于监听的事件源分别为SerlvetConext、HttpSession以及ServletRequest这三个域对象,其没有对配置文件的监听功能。本发明为了实现自动刷新web***的配置文件,将配置文件注册到***中,以实现配置文件监听(即Configuration Change Listener),其中将配置文件注册到***中所需用到的部分代码如:
private void register(final String file)throws IOException{
//to do
}。
需要说明的是,需要自动刷新的配置文件可以是程序员自定义的或感兴趣的一些配置项,加入***后的配置文件可以实现自动刷新功能。
所述监听模块102,用于在所述***启动后实时监听所述配置文件是否发生变化。其中,配置文件中可能包括多个配置项,如:对于配置文件A,配置文件A包括配置项1、2、3……n,监听配置文件A是否发生变化时可以读取配置文件A中各个配置项并检测各个配置项是否发生变化,web***开发人员可以定制一些读取配置项的方法,代码片段举例如下所示:
public String getConfigurationItem(final String key){
//to do
}。
web服务器启动后,***会随之启动,***启动后会实时监听位于***内的配置文件是否发生变化。需要说明的是,本实施例仅描述了***在本发明中所起的作用,而***的其他功能,如监听SerlvetConext、HttpSession以及ServletRequest等对象的过程不再详细描述。
具体的,启动***所需的部分代码如:
private void startWatcher(String dirPath,String file)throwsIOException{
//to do
}。
所述自动刷新模块103,用于在监听到所述配置文件发生变化时,通知所述web***自动刷新所述配置文件。即当监听到配置文件发生变化后,***通知web***(本实施例中为web服务器)自动刷新配置文件,而无需重启web服务器进行刷新。如:监听到配置文件A有删除内容、新增内容或修改内容的操作时,web服务器自动刷新该配置文件A。
具体的,***通知web服务器配置文件有变化所需的部分代码如:
public void notfify Changed(final String file){
},
Web服务器收到通知后自动刷新配置文件所需的部分代码如:
public void initilize(final String file){
//to do
}。
通过上述模块101-103,本发明web***配置文件的自动刷新装置100通过将需要自动刷新的配置文件注册到***,然后在***启动后实时监听所述配置文件是否发生变化,并在监听到配置文件发生变化时通知web***自动刷新配置文件,从而实现了web***中对配置文件的自动刷新,而无需在改变配置文件后重启web服务器进行刷新,操作简便,且避免了重启web服务器对当前业务的中断,提高了web***的可服务性。
基于上述第一实施例,提出本发明所述的web***配置文件的自动刷新装置的第二实施例。
如图2所示,是本发明所述的web***配置文件的自动刷新装置第二实施例的结构框图。本实施例中,web***配置文件的自动刷新装置100还包括监听类型设置模块104、配置文件设置模块105、创建模块106以及列表提供模块107。
所述监听类型设置模块104,用于设置所述配置文件发生变化的监听类型,所述监听类型包括新增、删除和修改。此时所述监听模块102用于:实时监听所述配置文件是否有新增、删除或修改,若监听到所述配置文件有新增、删除或修改,则判定所述配置文件发生变化。举例说明如:对于配置文件A,若配置文件A包括配置项1、2、3……n,则在配置文件A中增加一个或多个新的配置项时,认为配置文件A发生了新增的操作,当从配置文件A中已有的n个配置项中删除了一个或多个配置项时,认为配置文件A发生了删除的操作,当配置文件A中已有的一个或多个配置项发生了改变,则认为配置文件A发生了修改操作。当监听模块102监听到配置文件A发生了新增加配置项、删除配置项或修改已有的配置项时,认为配置文件A发生了变化。请参考图5,为设置配置文件的监听类型的界面示意图,本实施例中配置文件的监听类型包括新增、删除和修改,当然在其他实施例中监听类型还可以仅包括其中的一种或两种,此外,监听类型不限制于图5所示例的类型,还可以为其他类型。另外,需要说明的是,监听类型设置界面上所包括的各个监听类型可以由程序员预先设计,对于不同的web***,其可以提供一个选择界面,由技术人员选择采用哪些监听类型来监听配置文件。
所述配置文件设置模块105,用于为需要自动刷新的所述配置文件设置WatchAble接口。现有的配置文件不具有被监听功能,为了实现配置文件的自动刷新,本发明对配置文件设置Watch Able接口,之后即可通过web***的监听服务(Watch Service类)对配置文件的状态进行实时监听。
所述创建模块106,用于创建配置文件。请参考图6,为创建配置文件时一实施例的界面示意图,如图6所示,技术人员或用户在编辑界面的编辑区上输入配置文件的代码,然后进行下一步的操作,即可得到配置文件。具体的,可以使用ASP.NET配置***的功能,来配置整个web***上的所有ASP.NET应用程序、单个ASP.NET应用程序、各个页面或应用程序子目录,也可以配置各种功能,如身份验证模式、页面缓存、编译器选项、自定义错误、调试和跟踪选项等等。配置数据被存储在命名为Web.config的XML文本文件中,Web.config文件可以出现在ASP.NET应用程序的多个目录中,其中该命名为Web.configXML文本文件即为配置文件。使用这些文件,可以在将应用程序部署到服务器上之前、期间或之后方便地编辑配置数据。可以通过使用标准的文本编辑器、ASP.NET MMC管理单元、网站管理工具或ASP.NET配置API来创建和编辑ASP.NET配置文件。如:创建配置文件有如下方法:获取实例方法,主要是生成单例对象,始终保持一个对象,部分代码片段如:
public static Application Configuration get Instance(){
//to do
}。
当然,创建配置文件的方法有多种,本发明使用已有的配置文件设计方法,因此此处对配置文件的设计方法不进行详细的说明。
所述列表提供模块107,用于提供配置文件列表以供用户选择需要自动刷新的配置文件,其中所述配置文件列表中包括多个配置文件,各所述配置文件具有不同的存储目录。
通过上述模块101-107,本发明所提出的web***配置文件的自动刷新装置100首先创建配置文件,然后提供配置文件列表以供用户选择需要自动刷新的配置文件,之后为需自动刷新的配置文件设置Watch Able接口,并将需要自动刷新的配置文件注册到***,以及设置所述配置文件发生变化的监听类型,然后实时监听所述配置文件是否有新增、删除或修改,若监听到所述配置文件有新增、删除或修改,则判定所述配置文件发生变化,此时***通知web***自动刷新所述配置文件,从而实现了web***中对配置文件的自动刷新,而无需在改变配置文件后重启web服务器进行刷新,操作简便,且避免了重启web服务器对当前业务的中断,提高了web***的可服务性。
可选地,本发明提出一种web***配置文件的自动刷新方法,该方法应用于任一web***中。如图3所示,是本发明所述的web***配置文件的自动刷新方法第一实施例的实施流程图。在本实施例中,根据不同的需求,图3所示的流程图中的步骤的执行顺序可以改变,某些步骤可以省略。其中,本发明web***配置文件的自动刷新方法的实现过程利用了JDK1.7及以上版本的Watch Service类,JDK(Java Development Kit)是Sun Microsystems针对Java开发员的产品,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境,JAVA工具和JAVA基础的类库。目前JDK已经成为使用最广泛的Java SDK。下面在具体实施例中对本发明进行详细说明。
步骤S310,将需要自动刷新的配置文件注册到***。如设定希望对配置文件A进行自动刷新,则将配置文件A注册到***中。当然,web***中会存在多个配置文件,分别位于不同的存储目录下,也可以设置对多个配置文件进行监听,请参考图7,图7为选择注册到***中的配置文件时的界面示意图,如图7所示,在一实施例中可以将配置文件A、B、C同时注册到***中。
***,实际上是一个实现了特定接口的类,用于监听一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,***某个方法将立即被执行。在web***中,监听就是在进行某种各个范围中有相关值的设置、修改、替换的时候,这些操作都会触发事件,而Java中事件的代理机制,事件处理是利用listener机制,所以为了在事件触发的时候能够使自己采取相应的措施,就需要继承这样的listener,在listener中覆写相应的方法,覆写相应的事件处理方法,在对应的方法中处理对应的事件,也就是进行了监听。在web***中,会将***这个类在web.xml文件中进行描述,从而web服务器在启动时即可实例化这个类,启动***。现有技术中,web***的***用于监听的事件源分别为SerlvetConext、HttpSession以及ServletRequest这三个域对象,其没有对配置文件的监听功能。本发明为了实现自动刷新web***的配置文件,将配置文件注册到***中,以实现配置文件监听(即Configuration Change Listener),其中将配置文件注册到***中所需用到的部分代码如:
private void register(final String file)throws IOException{
//to do
}。
需要说明的是,需要自动刷新的配置文件可以是程序员自定义的或感兴趣的一些配置项,加入***后的配置文件可以实现自动刷新功能。
步骤S320,所述***启动后实时监听所述配置文件是否发生变化,若监听到配置文件发生变化,则执行步骤S330,反之继续监听所述配置文件是否发生变化,即重复步骤S320。其中,配置文件中可能包括多个配置项,如:对于配置文件A,配置文件A包括配置项1、2、3……n,监听配置文件A是否发生变化时可以读取配置文件A中各个配置项并检测各个配置项是否发生变化,web***开发人员可以定制一些读取配置项的方法,代码片段举例如下所示:
public String getConfigurationItem(final String key){
//to do
}。
web***中,web服务器启动后,***会随之启动,***启动后会实时监听位于***内的配置文件是否发生变化。需要说明的是,本实施例仅描述了***在本发明中所起的作用,而***的其他功能,如监听SerlvetConext、HttpSession以及ServletRequest等对象的过程不再详细描述。
具体的,启动***所需的部分代码如:
private void startWatcher(String dirPath,String file)throwsIOException{
//to do
}。
步骤S330,通知所述web***自动刷新所述配置文件。即当监听到配置文件发生变化后,***通知web***(本实施例中为web服务器)自动刷新配置文件,而无需重启web服务器进行刷新。如:监听到配置文件A有删除内容、新增内容或修改内容的操作时,web服务器自动刷新该配置文件A。
具体的,***通知web服务器配置文件有变化所需的部分代码如:
public void notfify Changed(final String file){
},
Web服务器收到通知后自动刷新配置文件所需的部分代码如:
public void initilize(final String file){
//to do
}。
通过上述步骤S310-S330,本发明web***配置文件的自动刷新方法通过将需要自动刷新的配置文件注册到***,然后在***启动后实时监听所述配置文件是否发生变化,并在监听到配置文件发生变化时通知web***自动刷新配置文件,从而实现了web***中对配置文件的自动刷新,而无需在改变配置文件后重启web服务器进行刷新,操作简便,且避免了重启web服务器对当前业务的中断,提高了web***的可服务性。
基于上述第一实施例,提出本发明所述的web***配置文件的自动刷新方法的第二实施例。
如图4所示,是本发明所述的web***配置文件的自动刷新方法第二实施例的实施流程图。在本实施例中,根据不同的需求,图4所示的流程图中的步骤的执行顺序可以改变,某些步骤可以省略。
步骤S410,创建配置文件。请参考图6,为创建配置文件时一实施例的界面示意图,如图6所示,技术人员或用户在编辑界面的编辑区上输入配置文件的代码,然后进行下一步的操作,即可得到配置文件。
具体的,可以使用ASP.NET配置***的功能,来配置整个web***上的所有ASP.NET应用程序、单个ASP.NET应用程序、各个页面或应用程序子目录,也可以配置各种功能,如身份验证模式、页面缓存、编译器选项、自定义错误、调试和跟踪选项等等。配置数据被存储在命名为Web.config的XML文本文件中,Web.config文件可以出现在ASP.NET应用程序的多个目录中,其中该命名为Web.configXML文本文件即为配置文件。使用这些文件,可以在将应用程序部署到服务器上之前、期间或之后方便地编辑配置数据。可以通过使用标准的文本编辑器、ASP.NET MMC管理单元、网站管理工具或ASP.NET配置API来创建和编辑ASP.NET配置文件。如:创建配置文件有如下方法:获取实例方法,主要是生成单例对象,始终保持一个对象,部分代码片段如:public static Application Configuration get Instance(){
//to do
}。
当然,创建配置文件的方法有多种,本发明使用已有的配置文件设计方法,因此此处对配置文件的设计方法不进行详细的说明。
步骤S420,提供配置文件列表以供用户选择需要自动刷新的配置文件。其中,所述配置文件列表中包括多个配置文件,各所述配置文件具有不同的存储目录。
步骤S430,为需自动刷新的配置文件设置Watch Able接口。具有Watch Able接口这种类型的对象可以注册到***中,注册后得到的WatchKey可用于监控事件修改。现有的配置文件不具有被监听功能,为了实现配置文件的自动刷新,本发明对配置文件设置Watch Able接口,之后即可通过web***的监听服务(Watch Service)对配置文件的状态进行监听。
步骤S440,将需要自动刷新的配置文件注册到***。如设定希望对配置文件A进行自动刷新,则将配置文件A注册到***中。当然,web***中会存在多个配置文件,多个配置文件分别位于不同的存储目录下,也可以设置对多个配置文件进行监听,请参考图7,图7为选择注册到***中的配置文件时的界面示意图,如图7所示,在一实施例中可以将配置文件A、B、C同时注册到***中。
***,实际上是一个实现了特定接口的类,用于监听一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,***某个方法将立即被执行。在web***中,监听就是在进行某种各个范围中有相关值的设置、修改、替换的时候,这些操作都会触发事件,而Java中事件的代理机制,事件处理是利用listener机制,所以为了在事件触发的时候能够使自己采取相应的措施,就需要继承这样的listener,在listener中覆写相应的方法,覆写相应的事件处理方法,在对应的方法中处理对应的事件,也就是进行了监听。在web***中,会将***这个类在web.xml文件中进行描述,从而web服务器在启动时即可实例化这个类,启动***。现有技术中,web***的***用于监听的事件源分别为SerlvetConext、HttpSession以及ServletRequest这三个域对象,其没有对配置文件的监听功能。本发明为了实现自动刷新web***的配置文件,将配置文件注册到***中,以实现配置文件监听(即Configuration Change Listener),其中将配置文件注册到***中所需用到的部分代码如:
private void register(final String file)throws IOException{
//to do
}。
步骤S450,设置所述配置文件发生变化的监听类型,所述监听类型包括新增、删除和修改。如对于配置文件A,若配置文件A包括配置项1、2、3……n,则在配置文件A中增加一个或多个新的配置项时,认为配置文件A发生了新增的操作,当从配置文件A中已有的n个配置项中删除了一个或多个配置项时,认为配置文件A发生了删除的操作,当配置文件A中已有的一个或多个配置项发生了改变,则认为配置文件A发生了修改操作。请参考图5,为设置配置文件的监听类型的界面示意图,本实施例中配置文件的监听类型包括新增、删除和修改,当然在其他实施例中监听类型还可以仅包括其中的一种或两种,此外,监听类型不限制于图5所示例的类型,还可以为其他类型。另外,需要说明的是,监听类型设置界面上所包括的各个监听类型可以由程序员预先设计,对于不同的web***,其可以提供一个选择界面,由技术人员选择采用哪些监听类型来监听配置文件。
步骤S460,***启动后实时监听所述配置文件是否有新增、删除或修改,若监听到所述配置文件有新增、删除或修改,则判定所述配置文件发生变化,执行步骤S470,反之继续监听所述配置文件,即重复执行步骤S460。如:当监听到配置文件A发生了新增加配置项、删除配置项或修改已有的配置项时,认为配置文件A发生了变化。
步骤S470,通知所述web***自动刷新所述配置文件。
即当监听到配置文件发生变化后,***通知web***(本实施例中为web服务器)自动刷新配置文件,而无需重启web服务器进行刷新。如:监听到配置文件A有删除内容、新增内容或修改内容的操作时,web服务器自动刷新该配置文件A。
具体的,***通知web服务器配置文件有变化所需的部分代码如:
public void notfify Changed(final String file){
},
Web服务器收到通知后自动刷新配置文件所需的部分代码如:
public void initilize(final String file){
//to do
}。
通过上述步骤S410-S470,本发明所提出的web***配置文件的自动刷新方法首先创建配置文件,然后提供配置文件列表以供用户选择需要自动刷新的配置文件,之后为需自动刷新的配置文件设置Watch Able接口,并将需要自动刷新的配置文件注册到***,以及设置所述配置文件发生变化的监听类型,然后实时监听所述配置文件是否有新增、删除或修改,若监听到所述配置文件有新增、删除或修改,则判定所述配置文件发生变化,此时***通知web***自动刷新所述配置文件,从而实现了web***中对配置文件的自动刷新,而无需在改变配置文件后重启web服务器进行刷新,操作简便,且避免了重启web服务器对当前业务的中断,提高了web***的可服务性。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种web***配置文件的自动刷新装置,应用于web***,其特征在于,所述装置包括:
注册模块,用于将需要自动刷新的配置文件注册到***;
监听模块,用于在所述***启动后实时监听所述配置文件是否发生变化;以及
自动刷新模块,用于在监听到所述配置文件发生变化时,通知所述web***自动刷新所述配置文件。
2.如权利要求1所述的web***配置文件的自动刷新装置,其特征在于,还包括:
监听类型设置模块,用于设置所述配置文件发生变化的监听类型,所述监听类型包括新增、删除和修改;
所述监听模块具体用于:
实时监听所述配置文件是否有新增、删除或修改,若监听到所述配置文件有新增、删除或修改,则判定所述配置文件发生变化。
3.如权利要求1所述的web***配置文件的自动刷新装置,其特征在于,还包括:
配置文件设置模块,用于为需要自动刷新的所述配置文件设置Watch Able接口。
4.如权利要求1至3任一项所述的web***配置文件的自动刷新装置,其特征在于,所述监听模块用于:
通过所述web***的Watch Service类实时监听所述配置文件是否发生变化。
5.如权利要求1所述的web***配置文件的自动刷新装置,其特征在于,还包括:
列表提供模块,用于提供配置文件列表以供用户选择需要自动刷新的配置文件,其中所述配置文件列表中包括多个配置文件,各所述配置文件具有不同的存储目录。
6.一种web***配置文件的自动刷新方法,应用于web***,其特征在于,包括以下步骤:
将需要自动刷新的配置文件注册到***;
所述***启动后实时监听所述配置文件是否发生变化;
若监听到所述配置文件发生变化,则通知所述web***自动刷新所述配置文件。
7.如权利要求6所述的web***配置文件的自动刷新方法,其特征在于,所述实时监听所述配置文件是否发生变化之前还包括:
设置所述配置文件发生变化的监听类型,所述监听类型包括新增、删除和修改;
所述实时监听所述配置文件是否发生变化具体为:
实时监听所述配置文件是否有新增、删除或修改,若监听到所述配置文件有新增、删除或修改,则判定所述配置文件发生变化。
8.如权利要求6所述的web***配置文件的自动刷新方法,其特征在于,所述将需要自动刷新的配置文件注册到***之前还包括:
为需要自动刷新的所述配置文件设置Watch Able接口。
9.如权利要求6至8任一项所述的web***配置文件的自动刷新方法,其特征在于,所述实时监听所述配置文件是否发生变化具体为:
通过所述web***的Watch Service类实时监听所述配置文件是否发生变化。
10.如权利要求6所述的web***配置文件的自动刷新方法,其特征在于,所述将需要自动刷新的配置文件注册到***之前还包括:
提供配置文件列表以供用户选择需要自动刷新的配置文件,其中所述配置文件列表中包括多个配置文件,各所述配置文件具有不同的存储目录。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611049002.5A CN106599085A (zh) | 2016-11-25 | 2016-11-25 | web***配置文件的自动刷新方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611049002.5A CN106599085A (zh) | 2016-11-25 | 2016-11-25 | web***配置文件的自动刷新方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106599085A true CN106599085A (zh) | 2017-04-26 |
Family
ID=58593184
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611049002.5A Withdrawn CN106599085A (zh) | 2016-11-25 | 2016-11-25 | web***配置文件的自动刷新方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106599085A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108366119A (zh) * | 2018-02-12 | 2018-08-03 | 天津天地伟业信息***集成有限公司 | 一种基于嵌入式设备cgi实现设备控制的方法 |
CN108881066A (zh) * | 2017-05-10 | 2018-11-23 | 腾讯科技(深圳)有限公司 | 一种路由请求的方法、接入服务器以及存储设备 |
CN109814950A (zh) * | 2019-01-16 | 2019-05-28 | 中国联合网络通信集团有限公司 | 服务调度方法、装置、设备及计算机可读存储介质 |
CN110297637A (zh) * | 2019-06-06 | 2019-10-01 | 北京网聘咨询有限公司 | 全平台客户端软件适用的资源文件热重载开发工具及方法 |
CN111010454A (zh) * | 2019-12-31 | 2020-04-14 | 杭州天宽科技有限公司 | 以动态路由架构实现的负载均衡方法 |
CN112732657A (zh) * | 2020-12-30 | 2021-04-30 | 广州金越软件技术有限公司 | 一种在ftp服务场景下高效读取大量小文件的方法 |
WO2021082081A1 (zh) * | 2019-10-29 | 2021-05-06 | 平安科技(深圳)有限公司 | 动态修改Nginx配置参数的方法、***、装置及存储介质 |
CN114422498A (zh) * | 2021-12-14 | 2022-04-29 | 杭州安恒信息技术股份有限公司 | 大数据实时处理方法、***、计算机设备及存储介质 |
CN115002190A (zh) * | 2022-05-27 | 2022-09-02 | 努比亚技术有限公司 | 一种功能配置文件调控方法、设备及计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102012807A (zh) * | 2010-08-19 | 2011-04-13 | 上海酷吧信息技术有限公司 | 一种程序开发过程中的配置文件控制方法及装置 |
CN103218242A (zh) * | 2013-04-19 | 2013-07-24 | 飞天诚信科技股份有限公司 | 一种自动更新的方法 |
US20160292732A1 (en) * | 2014-12-08 | 2016-10-06 | Vungle, Inc. | Systems and methods for communicating with devices with a customized adaptive user experience |
-
2016
- 2016-11-25 CN CN201611049002.5A patent/CN106599085A/zh not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102012807A (zh) * | 2010-08-19 | 2011-04-13 | 上海酷吧信息技术有限公司 | 一种程序开发过程中的配置文件控制方法及装置 |
CN103218242A (zh) * | 2013-04-19 | 2013-07-24 | 飞天诚信科技股份有限公司 | 一种自动更新的方法 |
US20160292732A1 (en) * | 2014-12-08 | 2016-10-06 | Vungle, Inc. | Systems and methods for communicating with devices with a customized adaptive user experience |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108881066A (zh) * | 2017-05-10 | 2018-11-23 | 腾讯科技(深圳)有限公司 | 一种路由请求的方法、接入服务器以及存储设备 |
CN108881066B (zh) * | 2017-05-10 | 2021-08-27 | 腾讯科技(深圳)有限公司 | 一种路由请求的方法、接入服务器以及存储设备 |
CN108366119A (zh) * | 2018-02-12 | 2018-08-03 | 天津天地伟业信息***集成有限公司 | 一种基于嵌入式设备cgi实现设备控制的方法 |
CN109814950A (zh) * | 2019-01-16 | 2019-05-28 | 中国联合网络通信集团有限公司 | 服务调度方法、装置、设备及计算机可读存储介质 |
CN109814950B (zh) * | 2019-01-16 | 2022-04-19 | 中国联合网络通信集团有限公司 | 服务调度方法、装置、设备及计算机可读存储介质 |
CN110297637A (zh) * | 2019-06-06 | 2019-10-01 | 北京网聘咨询有限公司 | 全平台客户端软件适用的资源文件热重载开发工具及方法 |
CN110297637B (zh) * | 2019-06-06 | 2023-03-31 | 北京网聘信息技术有限公司 | 全平台客户端软件适用的资源文件热重载开发工具及方法 |
WO2021082081A1 (zh) * | 2019-10-29 | 2021-05-06 | 平安科技(深圳)有限公司 | 动态修改Nginx配置参数的方法、***、装置及存储介质 |
CN111010454A (zh) * | 2019-12-31 | 2020-04-14 | 杭州天宽科技有限公司 | 以动态路由架构实现的负载均衡方法 |
CN112732657A (zh) * | 2020-12-30 | 2021-04-30 | 广州金越软件技术有限公司 | 一种在ftp服务场景下高效读取大量小文件的方法 |
CN114422498A (zh) * | 2021-12-14 | 2022-04-29 | 杭州安恒信息技术股份有限公司 | 大数据实时处理方法、***、计算机设备及存储介质 |
CN115002190A (zh) * | 2022-05-27 | 2022-09-02 | 努比亚技术有限公司 | 一种功能配置文件调控方法、设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106599085A (zh) | web***配置文件的自动刷新方法及装置 | |
CN108319483B (zh) | 网页处理方法、装置、终端及存储介质 | |
US9672140B1 (en) | Processing special requests at dedicated application containers | |
US20150324189A1 (en) | System and method for a user to dynamically update a mobile application from a generic or first application within a class of applications to create a specific or second application with said class of applications | |
US9286040B2 (en) | Software builder | |
CN110651252A (zh) | 内容管理***扩展 | |
US9015651B2 (en) | Gateway data distribution engine | |
US9563415B2 (en) | Generating visually encoded dynamic codes for remote launching of applications | |
TW201441829A (zh) | 頁面處理方法和裝置以及頁面生成方法和裝置 | |
US20220413842A1 (en) | Hosting event-based applications | |
Hunter II | Advanced microservices: a hands-on approach to microservice infrastructure and tooling | |
Johann | Kief morris on infrastructure as code | |
Vliet et al. | Elastic beanstalk | |
Varanasi et al. | Spring Rest | |
Petersen | From static and dynamic websites to static site generators | |
Soliman | Getting Started with Memcached | |
Schuette et al. | Exploiting instruction-level resource parallelism for transparent, integrated control-flow monitoring | |
Weider et al. | An approach to explore mobile software engineering advances in cloud computing environment | |
Höpfner et al. | Towards a target platform independent specification and generation of information system apps | |
CN109358973B (zh) | 信息处理方法、***、介质和计算设备 | |
Aryal | MERN stack with modern web practices | |
Pasquali | Deploying Node. js | |
Bhatt | Liferay Portal performance best practices | |
Kurniawan et al. | Mobile Back End | |
Ma et al. | Carpet: Automating Collaborative Web-Based Process across Multiple Devices by Capture-and-Replay |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20170426 |
|
WW01 | Invention patent application withdrawn after publication |