CN115373653A - 基于aop的业务增强方法、装置、计算机设备和存储介质 - Google Patents
基于aop的业务增强方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN115373653A CN115373653A CN202211021750.8A CN202211021750A CN115373653A CN 115373653 A CN115373653 A CN 115373653A CN 202211021750 A CN202211021750 A CN 202211021750A CN 115373653 A CN115373653 A CN 115373653A
- Authority
- CN
- China
- Prior art keywords
- configuration information
- storage center
- aop
- service
- enhanced configuration
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/316—Aspect-oriented programming techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/73—Program documentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种基于AOP的业务增强方法、装置、计算机设备和存储介质。方法包括:获取系统主程序中标注AOP注解的实现类,用作切入点,以连接对应业务功能的分支程序;获取各切入点自定义设置的增强配置信息,并持久化至第一存储中心;根据业务功能需求,将第一存储中心中的切入点的增强配置信息加载缓存至第二存储中心;对加载缓存的增强配置信息进行动态配置管理;在系统主程序运行时,加载AOP拦截器,对切入点进行拦截,以提取第二存储中心内,对应业务功能的至少一个切入点所关联的增强配置信息;根据提取的增强配置信息,连接对应业务功能的分支程序,以增强业务功能。采用本方法能够对同一系统主程序下的业务功能进行动态增强以及热启停。
Description
技术领域
本申请涉及计算机技术技术领域,特别是涉及一种基于AOP的业务增强方法、装置、计算机设备和存储介质。
背景技术
随着信息技术的高速发展,对信息化建设要求越来越高,在应用程序开发中,大多企业在进行相关业务的调整时,往往期望对应的信息化系统也能够做出改变,以响应相关业务。
本申请发明人在执行信息化系统改进时,发现现有技术中至少存在如下技术问题:
(1)同一功能根据不同需求进行不同业务实现时,需要写大量的业务分支逻辑代码,调整大量的代码,从而造成代码过于庞大不易理解,给后期扩展及维护带来很大的工作量,例如,在SAAS软件架构。
(2)目前通常采用重构程序来兼容各业务的扩展及调整。在重构过程中,将各业务分支逻辑抽取成方法或抽象成接口,以统一管理和修改。但是,该些方式无法避免在主流程代码中不断加入的业务分支,无法实现新增业务功能自定义动态启停,具有很强的侵入性,增加程序的复杂度,导致程序不易理解,也不利于系统运维。
(3)根据业务需要在主流程代码对应地方新增分支逻辑来处理,比如,将分支逻辑抽取成方法或者抽象成接口的多种实现,但是该些方法容易造成主流程由于业务分支较多代码臃肿、逻辑结构不够清晰,不易于代码管理与维护,也无法实现功能的按需动态启停。
发明内容
基于此,有必要针对上述技术问题,提供一种基于AOP的业务增强方法、装置、计算机设备和存储介质,能够根据业务增强配置,对同一系统主程序下的业务功能进行动态增强以及热启停。
第一方面,本申请提供的一种基于AOP的业务增强方法,方法包括:
获取系统主程序中至少一个标注AOP注解的实现类,并将实现类用作切入点,以连接对应业务功能的分支程序;
获取各切入点自定义设置的增强配置信息,并持久化至第一存储中心;
根据业务功能需求,将第一存储中心中的至少一个切入点的所述增强配置信息加载缓存至第二存储中心;
利用动态热插拔技术对加载缓存的所述增强配置信息进行动态配置管理;
在系统主程序运行时,加载AOP拦截器,对切入点进行拦截,以提取第二存储中心内,对应业务功能的至少一个切入点所关联的增强配置信息;
根据提取的增强配置信息,连接对应业务功能的分支程序,以增强业务功能。
在其中一个实施例中,在获取系统主程序中至少一个标注AOP注解的实现类之前,包括:
创建系统主程序的AOP切面,并在AOP切面上,对实现业务增强的实现类标注AOP注解,以定义切入点。
在其中一个实施例中,获取各所述切入点自定义设置的增强配置信息,并持久化至第一存储中心的步骤,包括:
获取各所述切入点自定义设置的增强配置信息;
判断各所述切入点是否已持久化存储到所述第一存储中心;
若所述切入点未持久化存储到所述第一存储中心,则将所述切入点以及对应的增强配置信息持久化存储到所述第一存储中心;
若所述切入点已持久化存储到所述第一存储中心,则对所述切入点不进行持久化存储到所述第一存储中心的响应。
在其中一个实施例中,获取各切入点自定义设置的增强配置信息,并持久化至第一存储中心的步骤包括:
通过可视化交互界面展示第一存储中心各切入点的配置情况;
若切入点的配置情况中未设置增强配置信息,则利用预存的配置表单的标签信息,获取对应切入点的自定义设置的增强配置信息。
在其中一个实施例中,根据业务功能需求,将所述第一存储中心中的至少一个所述切入点的所述增强配置信息加载缓存至第二存储中心,并利用动态热插拔技术对所述增强配置信息进行动态配置管理的步骤包括:
利用所述可视化交互界面获取所述业务功能需求;
根据业务功能需求,从第一存储中心中选择至少一个切入点;
将所选择的切入点的增强配置信息加载缓存至第二存储中心;
利用动态热插拔技术,对调用的切入点的增强配置信息进行动态配置管理。
在其中一个实施例中,所述增强配置信息包括业务维度、切入点位置、业务功能所属类、业务功能名、是否跳过主方法选项、是否独立事务选项、顺序号、是否启用选项。
在其中一个实施例中,将所述系统主程序连接对应所述业务功能的分支程序的步骤包括:
根据所述业务维度,将所述切入点连接至对应所述业务功能的分支程序,以使所选择的所述切入点在同一所述业务维度对应连接至少一个分支程序;
当所选择的切入点在同一所述业务维度对应连接多个所述分支程序时,根据所述顺序号依次执行所述分支程序。
第一方面,本申请提供的一种基于AOP的业务增强装置,装置包括:
标注获取模块,用于获取系统主程序中至少一个标注AOP注解的实现类,并将实现类用作切入点,以连接对应业务功能的分支程序;
第一存储模块,用于获取各切入点自定义设置的增强配置信息,并持久化至第一存储中心;
第二存储模块,用于根据业务功能需求,将第一存储中心中的至少一个切入点的增强配置信息加载缓存至第二存储中心;
配置管理模块,用于利用动态热插拔技术对加载缓存的增强配置信息进行动态配置管理;
程序拦截模块,用于在系统主程序运行时,加载AOP拦截器,对切入点进行拦截,以提取第二存储中心内,对应业务功能的至少一个切入点所关联的增强配置信息;
业务增强模块,用于根据提取的增强配置信息,连接对应业务功能的分支程序,以增强业务功能。
第三方面,本申请提供的一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现以下步骤:
获取系统主程序中至少一个标注AOP注解的实现类,并将实现类用作切入点,以连接对应业务功能的分支程序;
获取各切入点自定义设置的增强配置信息,并持久化至第一存储中心;
根据业务功能需求,将第一存储中心中的至少一个切入点的增强配置信息加载缓存至第二存储中心;
利用动态热插拔技术对加载缓存的增强配置信息进行动态配置管理;
在系统主程序运行时,加载AOP拦截器,对切入点进行拦截,以提取第二存储中心内,对应业务功能的至少一个切入点所关联的增强配置信息;
根据提取的增强配置信息,连接对应业务功能的分支程序,以增强业务功能。
第四方面,本申请提供的一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取系统主程序中至少一个标注AOP注解的实现类,并将实现类用作切入点,以连接对应业务功能的分支程序;
获取各切入点自定义设置的增强配置信息,并持久化至第一存储中心;
根据业务功能需求,将第一存储中心中的至少一个切入点的增强配置信息加载缓存至第二存储中心;
利用动态热插拔技术对加载缓存的增强配置信息进行动态配置管理;
在系统主程序运行时,加载AOP拦截器,对切入点进行拦截,以提取第二存储中心内,对应业务功能的至少一个切入点所关联的增强配置信息;
根据提取的增强配置信息,连接对应业务功能的分支程序,以增强业务功能。
上述基于AOP的业务增强方法、装置、计算机设备和存储介质,能够对同一系统主程序下的业务功能进行动态增强以及热启停。
通过对系统主程序的实现类(接口)上标注AOP注解,相当于结合了AOP技术,能够快速扫描出可以连接分支程序的实现类,作为AOP的切入点。由于系统主程序中的实现类是固定的,但是连接实现类的分支程序不固定,因此围绕同一个系统主程序,可以扩展出任意需求的业务功能。将各个切入点及其增强配置信息持久化至第一存储中心,相当于第一存储中心是以单个的切入点及其增强配置信息为单位;将业务功能所需的切入点及其增强配置信息,缓存至第二存储中心,可以理解为,第二存储中心中将业务功能涉及的切入点及其增强配置信息为单位整体进行加载调用。由于任意的业务功能所需的切入点及其增强配置中心可以从第一存储中心调用后,经过动态配置后,缓存至第二存储中心,因此针对第一存储中心的切入点及其增强配置中心,可以重复利用;对于第二存储中心的切入点所关联的动态配置的增强配置中心,基于动态热插拔技术,使得任意的业务功能都可以实现灵活热启停。有利于梳理业务主流程,优化程序结构,实现对业务方法的灵活管理,基于配置的动态加载执行的方式,还能够提高对业务变化的响应速度,提高开发与运维效率。
附图说明
图1为一个实施例中的基于AOP的业务增强方法的应用环境图;
图2为一个实施例中的业务增强方法的原理框图。
图3为一个实施例中的基于AOP的业务增强方法的应用场景图;
图4为一个实施例中的基于AOP的业务增强装置的结构框图;
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的基于面向切面编程(Aspect Oriented Programming,AOP)的业务增强方法,如图1所示,该方法包括以下步骤:
步骤S100,获取系统主程序中至少一个标注AOP注解的实现类,并将实现类用作切入点,以连接对应业务功能的分支程序。
步骤S200,获取各切入点自定义设置的增强配置信息,并持久化至第一存储中心。
步骤S300,根据业务功能需求,将第一存储中心中的至少一个切入点的增强配置信息加载缓存至第二存储中心。
步骤S400,利用动态热插拔技术对加载缓存的增强配置信息进行动态配置管理。
步骤S500,在系统主程序运行时,加载AOP拦截器,对切入点进行拦截,以提取第二存储中心内,对应业务功能的至少一个切入点所关联的增强配置信息。
步骤S600,根据提取的增强配置信息,连接对应业务功能的分支程序,以增强业务功能。
在一实施方式,实现步骤S100的前提为,系统主程序中的至少一个实现类标注有AOP注解,以将实现类用作切入点,用于连接业务功能扩展的分支程序。也就是说,根据业务功能的扩展需求,需要预先规划定义作为切入点的实现类,并对实现类标注AOP注解,然后再在系统主程序中实现类所在位置进行标注。因此,在一实施方式中,在执行步骤S100:获取系统主程序中至少一个标注AOP注解的实现类之前,包括:
创建系统主程序的AOP切面,并在AOP切面上,对实现业务增强的实现类标注AOP注解,以定义切入点。
具体地,例如,切入点的注解可以定义为@MomReplenish,那么需要对depOrder(params)所在的产品分解订单的主流程业务方法标记上注解。
其中,AOP表示面向切面编程,用于在不改动源代码的情况下对其业务功能进行增强;连接点表示所有正在运行的方法都是连接点(连接点包含切入点);切入点表示需要进行增强的连接点;切面表示描述通知与切入点的对应关系;通知表示增强的操作,也就是切入点需要进行增强的功能;通知类表示通知方法所在的类;实现类表示实现接口中约定的内容。
在步骤S200中,获取各切入点自定义设置的增强配置信息,并持久化至第一存储中心的步骤,包括:
获取各所述切入点自定义设置的增强配置信息;
判断各所述切入点是否已持久化存储到所述第一存储中心;
若所述切入点未持久化存储到所述第一存储中心,则将所述切入点以及对应的增强配置信息持久化存储到所述第一存储中心;
若所述切入点已持久化存储到所述第一存储中心,则对所述切入点不进行持久化存储到所述第一存储中心的响应。
因此本步骤中可以理解为,当实现类作为切入点,已持久化存储到第一存储中心时,在后续系统主程序启动扫描时,对第一存储中心中已有的所述切入点,不更新第一存储中心。
本实施例中的第一存储中心可以采用数据库服务器,第二存储中心可以采用缓存服务器,对此不做特别限定。本实施例中的第一存储中心以切入点为单位,采用持久化技术存储切入点及其增强配置信息;第二存储中心以业务功能为单位,采用缓存技术存储切入点及其增强配置信息。
其中,持久化存储切入点及其增强配置信息,即为将切入点及其增强配置信息保存到可永久保存的存储设备中(例如磁盘)。持久化技术是将程序数据在持久状态和瞬时状态间转换的机制。缓存技术相对持久化技术所需的存储设备,以一种更“快”的存储设备存储一些经常用到的数据,供快速访问,且不需要每次都与“慢”设备进行交互,以此来提高访问效率。
进一步说明,系统主程序启动时,扫描系统主程序中标注AOP注解的实现类。当标注AOP注解的实现类被首次作为切入点进行扫描时,将当前首次扫描的实现类,作为切入点持久化到第一存储中心中;当标注AOP注解的实现类被非首次作为切入点进行扫描时,对当前非首次扫描的实现类,第一存储中心将不做更新,即为,针对已有的切入点,第一存储中心不做针对切入点的添加或者替换,相当于一旦切入点持久化至第一存储中心,将永远固定存储在第一存储中心,而后对在第一存储中心内添加各增强配置信息。本实施例中的第一存储中心以切入点及其增强配置信息为单位进行统一存储,任意的业务功能所需要的切入点及其增强配置信息均可以从第一存储中心调用,从而可以重复利用已存储的切入点配置。
在一实施方式中,步骤S200:获取各切入点自定义设置的增强配置信息,并持久化至第一存储中心,可以包括步骤S210-S220。
步骤S210:通过可视化交互界面展示第一存储中心各切入点的配置情况。
其中,第一存储中心的切入点的配置情况包括已设置增强配置信息和未设置增强配置信息,当配置情况为未设置增强配置信息时,进入步骤S220。
步骤S220:若切入点的配置情况中未设置增强配置信息,则利用预存的配置表单的标签信息,获取对应切入点的自定义设置的增强配置信息。
在一实施方式中,针对首次扫描出的切入点,用户可以通过可视化交互界面进行增强配置信息的管理,比如,填写该切入点的增强配置信息。因此,在一实施方式中,利用预存的配置表单的标签信息,获取对应切入点的自定义设置的增强配置信息,包括:通过可视化交互界面,接收输入的针对切入点的增强配置信息。
具体地,在可视化交互界面中,利用切入点列表形式展示当前系统主程序的各个切入点的配置情况,当切入点列表中切入点所对应的配置情况为空时,选择添加配置表单,获取预设的切入点有关的统一配置表单。配置表单中设有标签信息以及对应的信息输入框,通过对应标签信息的信息输入框获取自定义设置的增强配置信息。
本实施例中的增强配置信息至少包括业务维度、切入点位置、业务功能所属类、业务功能名、是否跳过主方法选项、是否独立事务选项、顺序号、是否启用选项。
进一步说明,业务维度可以为工厂,程序中的工厂表示为:负责创建替他类型对象的类;本实施例中的业务维度用于限定业务功能,例如,不同的两个业务维度采用同一个切入点,通过业务维度区分不同的业务功能。如果不采用业务维度进行限定,导致无法重复利用切入点执行不同的业务功能。本实施例中的切入点位置可以为before、after、around、afterRunnig、afterThrowing中的其中之一;业务功能所属类表示将业务功能或规则关联到实现类。任意切入点的增强配置信息都设置有顺序号,通过顺序号才能合理安排同一业务维度下不同切入点所对应业务功能的执行顺序。
进一步说明,参考附图2所示,本实施例中一种业务增强方法的原理框图。针对同一切入点,不同的业务维度所对应的增强配置信息可以不同。例如:当执行depOrder(params)方法时,需要对工厂A的用户执行业务功能depByOrderParts(params),对工厂B的用户执行业务功能depByOrderBom(params),同时整个过程要在一个事务当中,那么就可以在切入位置around新增对应的业务维度的增强配置。
又比如,针对同一切入点,不同的业务维度所对应的增强配置信息相同。针对工厂A、工厂B配置了在增强点depOrder(params)的切入位置around上的业务功能,当执行订单分解操作时,如果是A工厂的用户,那么除了按主机产品分解生成订单外,还会按主机产品的虚拟组件部件关系分解订单depByOrderParts(params)。
进一步地,通过扫描系统主程序上的切入点,将首次扫描的切入点持久化到第一存储中心;利用可视化交互界面反映第一存储中心当前已经持久化的切入点的配置情况,在确定切入点没有配置增强配置信息后,利用预存的配置表单的标签信息,获取针对切入点的自定义设置的增强配置信息,并持久化至第一存储中心。
进一步地,通过可视化交互界面展示系统主程序的切入点及其配置情况,以及通过可视化交互界面获取操作人员的执行指令,对切入点进行配置管理,该处切入点的配置管理包括自定义设置切入点的增强配置信息后,持久化到第一存储中心,还包括从第一存储中心中动态加载切入点的增强配置信息,并缓存至第二存储中心。
在步骤S300中,根据所述业务功能需求,将所述第一存储中心中的至少一个所述切入点的所述增强配置信息加载缓存至第二存储中心的步骤包括:
步骤S310,利用可视化交互界面获取业务功能需求;
步骤S320,根据业务功能需求,从第一存储中心中选择至少一个所述切入点;
步骤S330,将所选择的所述切入点的所述增强配置信息加载缓存至第二存储中心。
第二存储中心用于存储以业务功能为单位的至少一个切入点及其增强配置信息。不同的业务功能可以预先选择所涉及的切入点,然后从第一存储中心调用切入点及其增强配置信息,根据业务功能的逻辑流程统一动态配置所涉及的切入点的增强配置信息,以便构成完整的业务逻辑。可以看出,本实施例中基于AOP的业务增强方法,是对系统主程序中标注AOP注解的实现类进行业务功能的增强扩展。
进一步说明,本实施例中的业务功能对应于业务维度,即为,相同的切入点,在不同的业务功能中,其业务维度信息是不同的。本实施例中针对新增的业务功能,调用涉及到的切入点及其增强配置信息,此时虽然调用了切入点及其增强配置信息,但是还没有对系统主程序与分支程序建立连接关系,需要动态热插拔加载配置后才能使用。因此,本实施例还包括步骤S400:利用动态热插拔技术对加载缓存的增强配置信息进行动态配置管理。
其中,动态配置管理可以理解为:针对调用的切入点的增强配置信息进行调整,比如,针对否跳过主方法选项、是否独立事务选项、是否启用选项中的“是”或“否”重新定义。利用动态热插拔技术,在增强配置信息重新定义后,不需要重启系统主程序,直接将对应业务工的分支程序加载到系统主程序上。
通过动态热插拔技术对业务功能进行管理配置,举例说明,系统主程序中标注AOP注解的实现类为:depOrder(params),对应可连接的分支程序可以为depByOrderParts(params)、depByOrderBom(params)。
针对depByOrderParts(params)按订单虚拟组件部件关系分解订单;针对depByOrderBom(params)按订单BOM层级结构分解订单,从而可以实现同一切入点两种业务功能的实现。
本实施例中先将所有扫描出的切入点及其增强配置信息持久化至第一存储中心。针对不同业务功能的增强扩展需求,将每一个业务功能涉及到的切入点进行动态加载增强配置。因此,针对任意一个业务功能的增强扩展需求,通过可视化交互界面,利用动态热插拔技术,对涉及到的切入点的增强配置信息进行动态管理,并加载到第二存储中心中,从而在运行系统时,可以直接从第二存储中心中提取对应业务功能的分支程序。
本实施例中的动态热插拔技术可以理解为系统主程序在运行过程中,动态配置切入点的增强配置信息,不需要重启系统主程序,即可将对应业务功能的分支程序通过切入点连接至系统主程序。
在步骤S500,在系统主程序运行时,加载AOP拦截器,对切入点进行拦截,以提取第二存储中心内,对应业务功能的至少一个切入点所关联的增强配置信息。
其中,AOP技术中的拦截器用于在某个方法或者字段被访问之前,进行拦截然后再之前或者之后加入某些操作,拦截器通过代理的方式来调用的。比如,在Java程序中,Struts2的拦截器实现相对简单,当请求到达Struts2的ServletDispatcher时,Struts2会查找配置文件,并根据配置实例化相对的拦截器对象,然后串成一个列表(List),最后一个一个的调用列表中的拦截器。Struts2的拦截器是可插拔的,并且,拦截器是AOP的一个实现。Struts2拦截器栈就是将拦截器按一定的顺序连接成一条链。在访问被拦截的方法或者字段时,Struts2拦截器链中的拦截器就会按照之前定义的顺序进行调用。
本步骤在运行系统主程序时,通过AOP拦截器对切入点进行拦截,然后提取第二存储中心内对应于业务功能的至少一个切入点关联的增强配置信息,以便通过切入点的增强配置信息连接分支程序。
步骤S600,根据增强配置信息,连接对应业务功能的分支程序,以增强业务功能。
其中,将所述系统主程序连接对应所述业务功能的分支程序的步骤包括:
根据所述业务维度,将所述切入点连接至对应所述业务功能的分支程序,以使所选择的所述切入点在同一所述业务维度对应连接至少一个分支程序;
当所述切入点在同一所述业务维度对应连接多个所述分支程序时,根据所述顺序号依次执行所述分支程序。
进一步说明,当业务功能所对应切入点的增强配置信息动态配置好后,缓存至第二存储中心后,系统主程序运行时,加载AOP拦截器,对标注了注解(例如,MomReplenish)的切入点进行拦截,根据登录对象所属业务维度,从第二存储中心取出对应切入点所对应切入点位置(before、after、around)的所有启用的配置项,按顺序号从小到大取出每条配置项来执行,包括事务、跳过主方法的设置,以及通过java反射机制执行配置信息中业务功能所属类中的业务功能来实现业务扩展的目的。
根据上述基于AOP的业务增强方法中,对系统主程序的实现类(接口)上标注AOP注解,相当于结合了AOP技术,能够快速扫描出可以连接分支程序实现类,作为AOP的切入点。由于系统主程序中的实现类是固定的,但是连接实现类的分支程序不固定,因此可以知道,围绕同一个系统主程序,可以扩展出任意需求的业务功能。将各个切入点及其增强配置信息持久化至第一存储中心,相当于第一存储中心是以单个的切入点及其增强配置信息为单位;将业务功能所需的切入点及其增强配置信息,缓存至第二存储中心,相当于第二存储中心是以业务功能涉及的切入点及其增强配置中心为单位。由于任意的业务功能所需的切入点及其增强配置中心可以从第一存储中心调用后,经过动态配置后,缓存至第二存储中心,因此针对第一存储中心的切入点及其增强配置中心,可以重复利用;对于第二存储中心的切入点所关联的动态配置的增强配置中心,基于动态热插拔技术,使得任意的业务功能都可以实现灵活热启停。有利于梳理业务主流程,优化程序结构,实现对业务方法的灵活管理,基于配置的动态加载执行的方式,还能够提高对业务变化的响应速度,提高开发与运维效率。
本申请还提供一种应用场景,该应用场景应用上述的基于AOP的业务增强方法。具体地,该基于AOP的业务增强方法在该应用场景的应用如下:
参考附图3所示的应用环境。该应用环境包括:第一服务器10、第二服务器20、第三服务器30、执行终端40、缓存服务器50、数据库服务器60。第一服务器10与第二服务器20、第三服务器30、执行终端40、缓存服务器50以及数据库服务器60连接。
第一服务器10,作为配置中心,用于存储执行基于AOP的业务增强方法步骤的计算机程序。第二服务器20,用于存储系统主程序。第三服务器,用于存储不同业务功能的分支程序。数据库服务器60,作为第一存储中心,以切入点为单位,持久化切入点及其增强配置信息。缓存服务器50,作为第二存储中心,以业务功能涉及的切入点为单位,存储所涉及到的切入点以及动态配置加载的增强配置信息。执行终端40,利用可视化交互界面映射第一存储中心以及第二存储中心中的切入点及其增强配置信息,执行针对切入点的配置管理。执行终端40与第一服务器10通过网络进行通信,执行终端40可以但不限于是个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,第一服务器10、第二服务器20、第三服务器30、缓存服务器50以及数据库服务器60可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
应该理解的是,虽然流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,流程图的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,参考附图4所示,提供了一种基于AOP的业务增强装置,包括:标注获取模块100、第一存储模块200、第二存储模块300、配置管理模块400,程序拦截模块500和业务增强模块600,其中:
标注获取模块100,用于获取系统主程序中至少一个标注AOP注解的实现类,并将所述实现类用作切入点,以连接对应业务功能的分支程序。
第一存储模块200,用于获取各切入点自定义设置的增强配置信息,并持久化至第一存储中心。
第二存储模块300,用于根据所述业务功能需求,将所述第一存储中心中的至少一个所述切入点的所述增强配置信息加载缓存至第二存储中心。
配置管理模块400,用于利用动态热插拔技术对加载缓存的所述增强配置信息进行动态配置管理。
程序拦截模块500,用于在系统主程序运行时,加载AOP拦截器,对切入点进行拦截,以提取第二存储中心内,对应业务功能的至少一个切入点所关联的增强配置信息。
业务增强模块600,用于根据提取的增强配置信息,连接对应业务功能的分支程序,以增强业务功能。
关于基于AOP的业务增强装置的具体限定可以参见上文中对于基于AOP的业务增强方法的限定,在此不再赘述。上述基于AOP的业务增强装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储基于AOP的业务增强方法的程序数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于AOP的业务增强方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于AOP的业务增强方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,本实施例给出的结构仅仅是与本申请方案相关的部分结构,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取系统主程序中至少一个标注AOP注解的实现类,并将所述实现类用作切入点,以连接对应业务功能的分支程序;
获取各切入点自定义设置的增强配置信息,并持久化至第一存储中心;以
根据所述业务功能需求,将所述第一存储中心中的至少一个所述切入点的所述增强配置信息加载缓存至第二存储中心;
利用动态热插拔技术对加载缓存的所述增强配置信息进行动态配置管理;
在系统主程序运行时,加载AOP拦截器,对切入点进行拦截,以提取第二存储中心内,对应业务功能的至少一个切入点所关联的增强配置信息;
根据提取的增强配置信息,连接对应业务功能的分支程序,以增强业务功能。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取系统主程序中至少一个标注AOP注解的实现类,并将所述实现类用作切入点,以连接对应业务功能的分支程序;
获取各切入点自定义设置的增强配置信息,并持久化至第一存储中心;
根据所述业务功能需求,将所述第一存储中心中的至少一个所述切入点的所述增强配置信息加载缓存至第二存储中心;
利用动态热插拔技术对加载缓存的所述增强配置信息进行动态配置管理;
在系统主程序运行时,加载AOP拦截器,对切入点进行拦截,以提取第二存储中心内,对应业务功能的至少一个切入点所关联的增强配置信息;
根据提取的增强配置信息,连接对应业务功能的分支程序,以增强业务功能。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种基于AOP的业务增强方法,其特征在于,所述方法包括:
获取系统主程序中至少一个标注AOP注解的实现类,并将所述实现类用作切入点,以连接对应业务功能的分支程序;
获取各所述切入点自定义设置的增强配置信息,并持久化至第一存储中心;
根据业务功能需求,将所述第一存储中心中的至少一个所述切入点的所述增强配置信息加载缓存至第二存储中心;
利用动态热插拔技术对加载缓存的所述增强配置信息进行动态配置管理;
在所述系统主程序运行时,加载AOP拦截器,对所述切入点进行拦截,以提取所述第二存储中心内,对应所述业务功能的至少一个所述切入点所关联的所述增强配置信息;
根据提取的所述增强配置信息,连接对应所述业务功能的分支程序,以增强业务功能。
2.根据权利要求1所述的基于AOP的业务增强方法,其特征在于,在获取系统主程序中至少一个标注AOP注解的实现类之前,包括:
创建所述系统主程序的AOP切面,并在所述AOP切面上,对实现业务增强的实现类标注AOP注解,以定义所述切入点。
3.根据权利要求1所述的基于AOP的业务增强方法,其特征在于,获取各所述切入点自定义设置的增强配置信息,并持久化至第一存储中心的步骤,包括:
获取各所述切入点自定义设置的增强配置信息;
判断各所述切入点是否已持久化存储到所述第一存储中心;
若所述切入点未持久化存储到所述第一存储中心,则将所述切入点以及对应的增强配置信息持久化存储到所述第一存储中心;
若所述切入点已持久化存储到所述第一存储中心,则对所述切入点不进行持久化存储到所述第一存储中心的响应。
4.根据权利要求3所述的基于AOP的业务增强方法,其特征在于,获取各所述切入点自定义设置的增强配置信息,并持久化至第一存储中心的步骤还包括:
通过可视化交互界面展示所述第一存储中心各所述切入点的配置情况;
若所述切入点的所述配置情况中未设置所述增强配置信息,则利用预存的配置表单的标签信息,获取对应所述切入点的自定义设置的所述增强配置信息。
5.根据权利要求4所述的基于AOP的业务增强方法,其特征在于,根据业务功能需求,将所述第一存储中心中的至少一个所述切入点的所述增强配置信息加载缓存至第二存储中心的步骤包括:
利用所述可视化交互界面获取所述业务功能需求;
根据所述业务功能需求,从所述第一存储中心中选择至少一个所述切入点;
将所选择的所述切入点的所述增强配置信息加载缓存至第二存储中心。
6.根据权利要求4所述的基于AOP的业务增强方法,其特征在于,所述增强配置信息包括业务维度、切入点位置、业务功能所属类、业务功能名、是否跳过主方法选项、是否独立事务选项、顺序号、是否启用选项。
7.根据权利要求6所述的基于AOP的业务增强方法,其特征在于,将所述系统主程序连接对应所述业务功能的分支程序的步骤包括:
根据所述业务维度,将所述切入点连接至对应所述业务功能的分支程序,以使所选择的所述切入点在同一所述业务维度对应连接至少一个分支程序;
当所选择的所述切入点在同一所述业务维度对应连接多个所述分支程序时,根据所述顺序号依次执行所述分支程序。
8.一种基于AOP的业务增强装置,其特征在于,所述装置包括:
标注获取模块,用于获取系统主程序中至少一个标注AOP注解的实现类,并将所述实现类用作切入点,以连接对应业务功能的分支程序;
第一存储模块,用于获取各所述切入点自定义设置的增强配置信息,并持久化至第一存储中心;
第二存储模块,用于根据所述业务功能需求,将所述第一存储中心中的至少一个所述切入点的所述增强配置信息加载缓存至第二存储中心;
配置管理模块,用于利用动态热插拔技术对加载缓存的所述增强配置信息进行动态配置管理;
程序拦截模块,用于在所述系统主程序运行时,加载AOP拦截器,对所述切入点进行拦截,以提取所述第二存储中心内,对应所述业务功能的至少一个所述切入点所关联的所述增强配置信息;
业务增强模块,用于根据提取的所述增强配置信息,连接对应所述业务功能的分支程序,以增强业务功能。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211021750.8A CN115373653A (zh) | 2022-08-24 | 2022-08-24 | 基于aop的业务增强方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211021750.8A CN115373653A (zh) | 2022-08-24 | 2022-08-24 | 基于aop的业务增强方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115373653A true CN115373653A (zh) | 2022-11-22 |
Family
ID=84068486
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211021750.8A Pending CN115373653A (zh) | 2022-08-24 | 2022-08-24 | 基于aop的业务增强方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115373653A (zh) |
-
2022
- 2022-08-24 CN CN202211021750.8A patent/CN115373653A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240095043A1 (en) | Execution of sub-application processes within application program | |
CN109814854B (zh) | 项目框架生成方法、装置、计算机设备和存储介质 | |
US11474810B2 (en) | Run-time application modification | |
CN113312037A (zh) | 应用于微服务的数据处理方法、装置、设备和存储介质 | |
US10747510B1 (en) | Application runtime modification | |
CN112114913A (zh) | 应用程序的界面更新方法、装置、计算机设备和存储介质 | |
CN111552535A (zh) | 界面图片更换方法、装置、计算机设备和存储介质 | |
CN109582890A (zh) | 页面加载方法、装置、计算机设备及存储介质 | |
CN111008132A (zh) | Android系统的应用调试方法、装置、计算机设备和存储介质 | |
CN114371841A (zh) | 前端项目代码生成方法、装置、计算机设备和存储介质 | |
CN110362341B (zh) | 基于微服务架构的业务管理方法、装置、设备和存储介质 | |
US9558060B1 (en) | End use self-help delivery system | |
CN111158777B (zh) | 组件调用方法、装置及计算机可读存储介质 | |
CN110489138B (zh) | 一种应用更新方法、装置和存储介质 | |
CN115373653A (zh) | 基于aop的业务增强方法、装置、计算机设备和存储介质 | |
CN111857782B (zh) | 界面更新方法、装置、计算机设备和存储介质 | |
CN114510334A (zh) | 类实例的调用方法、装置、电子设备及自动驾驶车辆 | |
CN111177624B (zh) | 网站前后端通讯方法、装置、计算机设备和存储介质 | |
CN113961298A (zh) | 一种页面切换方法、装置、设备及介质 | |
CN110083348B (zh) | 基于多进程浏览器的绘图方法、装置、设备和存储介质 | |
CN114035864A (zh) | 接口处理方法、接口处理装置、电子设备和存储介质 | |
CN111949301B (zh) | 应用程序热更新方法、装置和计算机可读存储介质 | |
CN112860235A (zh) | 处理文本的方法、装置、设备和存储介质 | |
CN114281434B (zh) | 小程序用户信息管理方法、装置、计算机设备和存储介质 | |
CN113765731B (zh) | 信息处理方法、装置及计算机可读存储介质 |
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 |