CN105468407B - 一种自动发现并按序运行启动类的方法 - Google Patents
一种自动发现并按序运行启动类的方法 Download PDFInfo
- Publication number
- CN105468407B CN105468407B CN201510799307.7A CN201510799307A CN105468407B CN 105468407 B CN105468407 B CN 105468407B CN 201510799307 A CN201510799307 A CN 201510799307A CN 105468407 B CN105468407 B CN 105468407B
- Authority
- CN
- China
- Prior art keywords
- class
- startup
- priority
- run
- sort
- 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
Links
Landscapes
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明涉及JAVA开发技术领域,特别是一种自动发现并按序运行启动类的方法。本发明首先开发各种程序启动类,这些类都继承一个启动父类,并设置好优先级。然后通过JAR包发现程序,扫描项目中的JAR包。然后解析JAR包,找出所有集成启动父类的启动类,并且将其实例化放入内存中。程序再根据优先级和实际运行环境所选择的排序规则,对这些启动类进行排序,并逐一运行。本发明解决了在程序开发的时候,如果要添加启动类,添加则需要修改对应的配置文件,增加监听器,或者增加对象实例化的麻烦,同时也解决了,不同启动类之间,优先级配置麻烦,调整优先级则需要做出大改动,而且不能根据实际情况来选择不同的优先级的问题;可以用于项目启动的初始化类管理。
Description
技术领域
本发明涉及JAVA开发技术领域,特别是一种自动发现并按序运行启动类的方法。
背景技术
在程序启动的时候,往往需要各种各样的启动类来完成各种的初始化操作,在web容器的项目中,做法往往是在web.xml里面配置监听器,当程序启动时,由服务器来顺序执行。而在JAVA项目中,做法则往往是在main方法中实例化对应的对象执行规定的方法。然而无论是哪种做法,都存在的以下问题:
一是每增加一个启动类,就要修改对应的配置文件或者增加对应的实例化,一旦启动类多了,则变得难以维护.
二是如果新增一个启动类,优先级更优先的时候,则需要对配置文件或者实例化的顺序进行调整,但启动类较多时,需要找到对应的位置和进行调整则变得十分苦难.
三是如果优先级一旦确定,则难以调整,更无法通过判断启动方式来采用不同的调度顺序。
四是优先级无法根据具体启动方式来决定不同的执行顺序,更无法根据优先级决定启动类是否运行。
为了降低代码的耦合,提高启动类的开发速度,简化启动类的配置,增加启动类优先级配置的灵活性,需要一种自动发现并按序运行启动类的方法。
发明内容
本发明解决的技术问题在于提供一种自动发现并按序运行启动类的方法,解决了启动类配置麻烦,对原代码或配置文件造成侵入,维护难度高并且优先级配置不灵活的问题。
本发明解决上述技术问题的技术方案是:
所述的方法包括如下步骤:
步骤1:编写启动类,并继承启动父类,设置优先级;
步骤2:JAR包启动程序扫描发现项目JAR包;
步骤3:解析JAR包中的类和项目中的类,找到继承启动父类的实现类;
步骤4:实例化启动类,并放入内存;
步骤5:根据程序的配置,选择对应的自定义排序规则;
步骤6:根据自定义的排序方法和启动类所设置的优先级,对这些实例化对象进行排序,并判断是否运行,然后按顺序执行对应需要运行的启动类。
所述启动父类,是一个抽象类,定义了如优先级、运行方法、执行前方法、执行后方法、是否执行等启动类所必须的方法和参数;同时,此类用于标识启动类,让启动发现类发现此启动类;
所述启动类是指程序在服务器启动时所要做的一些配置和动作,用于初始化程序,保证程序能够正常启动和运行;
所述优先级是用于判断哪个启动类运行顺序的标识符,可以是数字、字符甚至是公式等多种形式。
所述选择程序的配置是指程序启动的是调试模式,还是生成模式,或者是不同的版本。
所述自定义的排序方法是指针对优先级所定义的排序方法,如果优先级是数据,则可以根据数字大小进行排序;如果是字母,则可以通过字母ascii码进行排序,提供灵活的优先级排序方法,方便扩展启动类。
所述是否运行是只启动类的标识符,用于判断此启动类在本地启动是否运行;可以是简单的true和false,同时也可以用相应的逻辑用于判断是否运行。
本发明可以简化启动类的配置方式,方便扩展,并且拥有灵活多变的优先级机制。只需要一次配置,后续的增加和调整启动类都无需再对配置文件或者其他类进行修改,对原代码无侵入。而灵活的优先级配置使得可以根据自己的意愿定义优先级规则,同时还可以通过配置参数来完成不同场景的调用不同的优先级规则。为程序提供了一个快速、方便、灵活的配置初始化启动类的解决方法。
附图说明
下面结合附图对本发明进一步说明:
图1为本发明方法流程图。
具体实施方式
如图1所示,本发明的实现流程如下:
1.首先定义jar包发现类,作用在于把项目中的JAR中的类放入内存中:
2.然后定义启动类父类
3.定义启动类,这里展示定义一个启动类
4.启动类发现类
5.定义排序方法,例子中使用按数字大小排序的方法。
6.执行启动类的类。按照自定义的排序方式进行排序,并执顺序执行。
Claims (6)
1.一种自动发现并按序运行启动类的方法,其特征在于:所述的方法包括如下步骤:
步骤1:编写启动类,并继承启动父类,设置优先级;
步骤2:JAR包启动程序扫描发现项目JAR包;
步骤3:解析JAR包中的类和项目中的类,找到继承启动父类的实现类;
步骤4:实例化启动类,并放入内存;
步骤5:根据程序的配置,选择对应的自定义的排序方法;
步骤6:根据自定义的排序方法和启动类所设置的优先级,对实例化对象进行排序,并判断是否运行,然后按顺序执行对应需要运行的启动类。
2.根据权利要求1所述的自动发现并按序运行启动类的方法,其特征在于:所述启动父类,是一个抽象类,定义了优先级、运行方法、执行前方法、执行后方法、是否执行启动类所必须的方法和参数;同时,启动父类用于标识启动类,让启动发现类发现此启动类;
所述启动类是指程序在服务器启动时所要做的一些配置和动作,用于初始化程序,保证程序能够正常启动和运行;
所述优先级是用于判断哪个启动类运行顺序的标识符,为数字、字符或公式形式。
3.根据权利要求1所述的自动发现并按序运行启动类的方法,其特征在于:所述根据程序的配置是指程序启动的是调试模式,还是生成模式,或者是不同的版本。
4.根据权利要求1所述的自动发现并按序运行启动类的方法,其特征在于:所述自定义的排序方法是指针对优先级所定义的排序方法,如果优先级是数据,则根据数字大小进行排序;如果是字母,则通过字母ascii码进行排序。
5.根据权利要求2所述的自动发现并按序运行启动类的方法,其特征在于:所述自定义的排序方法是指针对优先级所定义的排序方法,如果优先级是数据,则根据数字大小进行排序;如果是字母,则通过字母ascii码进行排序。
6.根据权利要求1至4任一项所述的自动发现并按序运行启动类的方法,其特征在于:所述是否运行是指启动类的标识符,用于判断此启动类在本地启动是否运行;上述启动类的标识符或者是true和false,或者是用相应的逻辑用于判断是否运行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510799307.7A CN105468407B (zh) | 2015-11-19 | 2015-11-19 | 一种自动发现并按序运行启动类的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510799307.7A CN105468407B (zh) | 2015-11-19 | 2015-11-19 | 一种自动发现并按序运行启动类的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105468407A CN105468407A (zh) | 2016-04-06 |
CN105468407B true CN105468407B (zh) | 2018-11-06 |
Family
ID=55606145
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510799307.7A Active CN105468407B (zh) | 2015-11-19 | 2015-11-19 | 一种自动发现并按序运行启动类的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105468407B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107463380B (zh) * | 2017-08-01 | 2018-07-06 | 武汉斗鱼网络科技有限公司 | 消息处理方法、装置及电子设备 |
CN113360407B (zh) * | 2021-07-02 | 2023-10-13 | 北京百度网讯科技有限公司 | 函数的定位方法、装置、电子设备及可读存储介质 |
CN115080151B (zh) * | 2022-07-22 | 2023-07-14 | 平安银行股份有限公司 | App启动流程控制方法、计算机可读存储介质及终端 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101179780A (zh) * | 2007-12-17 | 2008-05-14 | 华为技术有限公司 | 保存遗言信息的方法和装置 |
CN103150179A (zh) * | 2013-02-07 | 2013-06-12 | 宝龙计算机系统(湖南)有限公司 | 一种类unix操作系统获取交换空间的方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8355709B2 (en) * | 2006-10-23 | 2013-01-15 | Qualcomm Incorporated | Device that determines whether to launch an application locally or remotely as a webapp |
IN2013CH05013A (zh) * | 2013-11-07 | 2015-05-08 | Schneider Electric It Corp |
-
2015
- 2015-11-19 CN CN201510799307.7A patent/CN105468407B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101179780A (zh) * | 2007-12-17 | 2008-05-14 | 华为技术有限公司 | 保存遗言信息的方法和装置 |
CN103150179A (zh) * | 2013-02-07 | 2013-06-12 | 宝龙计算机系统(湖南)有限公司 | 一种类unix操作系统获取交换空间的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105468407A (zh) | 2016-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9792103B2 (en) | Deploying an application across multiple deployment environments | |
US10372107B2 (en) | Custom properties in an application environment | |
US8612872B2 (en) | Animated user interface control elements | |
EP2990940B1 (en) | Icon display method and apparatus | |
US10579346B2 (en) | Mobile accessibility evaluation from application binary | |
CN105468407B (zh) | 一种自动发现并按序运行启动类的方法 | |
WO2017112599A1 (en) | Method and device for extending a layout template of an application component | |
EP3726373A1 (en) | Creating an app method and system | |
US20190265863A1 (en) | Adjusting appearance of icons in an electronic device | |
US20170168653A1 (en) | Context-driven, proactive adaptation of user interfaces with rules | |
CN101821714A (zh) | 复用运行应用中的组件 | |
CN111831176B (zh) | 应用程序管理方法及装置 | |
CN106648864B (zh) | 打开和/或切换多个应用的方法及装置 | |
CN102982169A (zh) | 用于隔离网页插件的浏览器和方法 | |
US20160179296A1 (en) | Method and device for video rendering | |
CN105117320A (zh) | 在电子终端中管理应用的方法及其电子终端 | |
CN110647278A (zh) | 一种控制插件显示的方法、装置、计算设备及存储介质 | |
US11656601B2 (en) | Method and electronic generation device for generating at least one configuration file for an automation tool, related computer program | |
CN103034495A (zh) | 对网页中插件进行隔离的浏览器及网页插件的隔离方法 | |
CN114968406B (zh) | 一种插件管理方法、装置、电子设备及存储介质 | |
CN114257624A (zh) | 物联网设备的配置方法、装置、设备及存储介质 | |
US20220222350A1 (en) | Vulnerability dashboard and automated remediation | |
CN109697338A (zh) | 一种软件安装拦截方法及相关装置 | |
US20230037914A1 (en) | Network service descriptor support for network slice isolation requirements | |
CN107766524A (zh) | 一种应用程序的搜索方法、装置和智能终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP02 | Change in the address of a patent holder |
Address after: 523808 19th Floor, Cloud Computing Center, Chinese Academy of Sciences, No. 1 Kehui Road, Songshan Lake Hi-tech Industrial Development Zone, Dongguan City, Guangdong Province Patentee after: G-Cloud Technology Co., Ltd. Address before: 523808 No. 14 Building, Songke Garden, Songshan Lake Science and Technology Industrial Park, Dongguan City, Guangdong Province Patentee before: G-Cloud Technology Co., Ltd. |
|
CP02 | Change in the address of a patent holder |