CN112988225B - 注解配置方法、装置、设备及存储介质 - Google Patents
注解配置方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112988225B CN112988225B CN202110270342.5A CN202110270342A CN112988225B CN 112988225 B CN112988225 B CN 112988225B CN 202110270342 A CN202110270342 A CN 202110270342A CN 112988225 B CN112988225 B CN 112988225B
- Authority
- CN
- China
- Prior art keywords
- annotation
- metadata
- configuration
- dimension
- byte code
- 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
- 238000000034 method Methods 0.000 title claims abstract description 51
- 230000008859 change Effects 0.000 claims abstract description 51
- 230000006870 function Effects 0.000 claims abstract description 22
- 238000013507 mapping Methods 0.000 claims description 33
- 238000012986 modification Methods 0.000 claims description 15
- 230000004048 modification Effects 0.000 claims description 15
- 238000012545 processing Methods 0.000 abstract description 21
- 238000011161 development Methods 0.000 abstract description 17
- 238000005516 engineering process Methods 0.000 abstract description 2
- 238000007726 management method Methods 0.000 description 79
- 238000010586 diagram Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 238000004806 packaging method and process Methods 0.000 description 4
- 238000011160 research Methods 0.000 description 4
- 230000002085 persistent effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- 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
- 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/23—Updating
- G06F16/2358—Change logging, detection, and notification
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
- G06F8/436—Semantic checking
Abstract
本发明涉及数据处理领域,公开了一种注解配置方法、装置、设备及存储介质,用于解决现有技术中使用注解进行一些较为复杂的功能的配置时,操作步骤十分繁琐,使开发工作变得复杂的问题。该方法包括:获取选定部分的字节码内容,将字节码内容初始化至缓存数据库中,得到注解相关元数据;接收注解配置管理端发出的注解配置请求,其中,注解配置请求中包括注解配置元数据;根据注解配置元数据按照责任链模式更改注解相关元数据,得到更改注解元数据;根据更改注解元数据生成更改注解字节码,根据更改注解字节码更新选定部分的字节码内容。此外,本发明还涉及区块链技术,注解配置的相关信息可存储于区块链中。
Description
技术领域
本发明涉及数据处理领域,尤其涉及一种注解配置方法、装置、设备及存储介质。
背景技术
Java注解(Annotation)又称为Java标注,是JDK5.0引入的一种注释机制。Java语言中的类、方法、变量、参数和包等都可以被标注。和Javadoc不同,Java标注可以通过反射获取标注内容。在编译器生成类文件时,标注可以被嵌入到字节码中。Java虚拟机可以保留标注内容,在运行时可以获取到标注内容,通过解析注解来使用这些数据。
但在现有的技术中,使用注解进行一些较为复杂的功能的配置时,需要引入非常多的框架,操作起来也十分繁琐,使开发工作变得复杂。
发明内容
本发明的主要目的在于解决现有技术中使用注解进行一些较为复杂的功能的配置时,操作步骤十分繁琐,使开发工作变得复杂的问题。
本发明第一方面提供了一种注解配置方法,包括:
获取选定部分的字节码内容,将所述字节码内容初始化至缓存数据库中,得到注解相关元数据;
接收注解配置管理端发出的注解配置请求,其中,所述注解配置请求中包括注解配置元数据;
根据所述注解配置元数据按照责任链模式更改所述注解相关元数据,得到更改注解元数据;
根据所述更改注解元数据生成更改注解字节码,根据所述更改注解字节码更新选定部分的字节码内容。
可选的,在本发明第一方面的第一种实现方式中,所述获取选定部分的字节码内容,将所述字节码内容初始化至缓存数据库中,得到注解相关元数据包括:
获取选定部分的字节码内容,读取所述选定部分的字节码内容中的类名称,基于所述类名称获取注解相关字节码;
根据所述注解相关字节码,按照预设编码映射关系生成注解相关元数据。
可选的,在本发明第一方面的第二种实现方式中,所述根据所述注解配置元数据按照责任链模式更改所述注解相关元数据,得到更改注解元数据包括:
读取所述注解相关元数据中的信息,按照责任链模式基于所述注解相关元数据中的信息确定所述注解相关元数据中的注解配置范围;
根据所述注解配置元数据,按照责任链模式对所述注解配置范围内的注解相关元数据进行更改,得到更改注解元数据。
可选的,在本发明第一方面的第三种实现方式中,所述读取所述注解相关元数据中的信息,按照责任链模式基于所述注解相关元数据中的信息确定所述注解相关元数据中的注解配置范围包括:
获取所述注解相关元数据中的使用维度元数据,判断注解功能是否开启,若开启,则继续;
获取所述注解相关元数据中的用户维度元数据,确定当前注解配置请求针对的用户范围;
获取所述注解相关元数据中的实例维度元数据,确定当前注解配置请求针对的实例范围;
获取所述注解相关元数据中的时间维度元数据,确定当前注解配置请求针对的时间段范围。
可选的,在本发明第一方面的第四种实现方式中,所述根据所述注解配置元数据,按照责任链模式对所述注解配置范围内的注解相关元数据进行更改,得到更改注解元数据包括:
获取所述注解相关元数据中的限流维度元数据,根据注解配置元数据中的限流维度配置元数据更改所述限流维度元数据,得到更改限流维度元数据;
获取所述注解相关元数据中的熔断维度元数据,根据注解配置元数据中的熔断维度配置元数据更改所述熔断维度元数据,得到更改熔断维度元数据;
获取所述注解相关元数据中的锁定维度元数据,根据注解配置元数据中的锁定维度配置元数据更改所述锁定维度内容,得到更改锁定维度元数据;
获取所述注解相关元数据中的缓存维度元数据,根据注解配置元数据中的缓存维度配置元数据更改所述使用的缓存维度元数据,得到更改缓存维度元数据;
获取所述注解相关元数据中的权限维度元数据,根据注解配置元数据中的权限维度配置元数据更改所述权限维度元数据,得到更改权限维度元数据。
可选的,在本发明第一方面的第五种实现方式中,所述根据所述注解配置元数据,按照责任链模式对所述注解配置范围内的注解相关元数据进行更改,得到更改注解元数据包括:
获取所述注解配置元数据,并提取所述注解配置元数据中携带的用于生成更改注解元数据的当前注解配置项目的实现算法;
根据所述实现算法按照预设编码映射关系生成新增元数据,将所述新增元数据增加至缓存数据库中,得到更改注解元数据。
可选的,在本发明第一方面的第六种实现方式中,所述注解配置请求为通过获取所述注解配置管理端中存储的配置内容表,并根据用户需要配置的具体内容对所述配置内容表中的注解配置项目内容进行修改,得到更改配置内容表,基于所述更改配置内容表生成的注解配置请求。
本发明第二方面提供了一种注解配置装置,包括
获取模块,用于获取选定部分的字节码内容,将所述字节码内容初始化至缓存数据库中,得到注解相关元数据;
请求接收模块,用于接收注解配置管理端发出的注解配置请求,其中,所述注解配置请求中包括注解配置元数据;
元数据更改模块,用于根据所述注解配置元数据按照责任链模式更改所述注解相关元数据,得到更改注解元数据;
字节码更新模块,用于根据所述更改注解元数据生成更改注解字节码,根据所述更改注解字节码更新选定部分的字节码内容。
可选的,在本发明第二方面的第一种实现方式中,所述获取模块包括:
字节码获取单元,用于获取选定部分的字节码内容,读取所述选定部分的字节码内容中的类名称,基于所述类名称获取注解相关字节码;
元数据生成单元,用于根据所述注解相关字节码,按照预设编码映射关系生成注解相关元数据。
可选的,在本发明第二方面的第二种实现方式中,所述元数据更改模块包括:
范围确定单元,用于读取所述注解相关元数据中的信息,按照责任链模式基于所述注解相关元数据中的信息确定所述注解相关元数据中的注解配置范围;
更改单元,用于根据所述注解配置元数据,按照责任链模式对所述注解配置范围内的注解相关元数据进行更改,得到更改注解元数据。
可选的,在本发明第二方面的第三种实现方式中,所述范围确定单元具体还用于:
获取所述注解相关元数据中的使用维度元数据,判断注解功能是否开启,若开启,则继续;
获取所述注解相关元数据中的用户维度元数据,确定当前注解配置请求针对的用户范围;
获取所述注解相关元数据中的实例维度元数据,确定当前注解配置请求针对的实例范围;
获取所述注解相关元数据中的时间维度元数据,确定当前注解配置请求针对的时间段范围。
可选的,在本发明第二方面的第四种实现方式中,所述更改单元具体还用于:
获取所述注解相关元数据中的限流维度元数据,根据注解配置元数据中的限流维度配置元数据更改所述限流维度元数据,得到更改限流维度元数据;
获取所述注解相关元数据中的熔断维度元数据,根据注解配置元数据中的熔断维度配置元数据更改所述熔断维度元数据,得到更改熔断维度元数据;
获取所述注解相关元数据中的锁定维度元数据,根据注解配置元数据中的锁定维度配置元数据更改所述锁定维度内容,得到更改锁定维度元数据;
获取所述注解相关元数据中的缓存维度元数据,根据注解配置元数据中的缓存维度配置元数据更改所述使用的缓存维度元数据,得到更改缓存维度元数据;
获取所述注解相关元数据中的权限维度元数据,根据注解配置元数据中的权限维度配置元数据更改所述权限维度元数据,得到更改权限维度元数据。
可选的,在本发明第二方面的第五种实现方式中,所述更改单元还用于:
获取所述注解配置元数据,并提取所述注解配置元数据中携带的用于生成更改注解元数据的当前注解配置项目的实现算法;
根据所述实现算法按照预设编码映射关系生成新增元数据,将所述新增元数据增加至缓存数据库中,得到更改注解元数据。
可选的,在本发明第二方面的第六种实现方式中,所述注解配置请求为通过获取所述注解配置管理端中存储的配置内容表,并根据用户需要配置的具体内容对所述配置内容表中的注解配置项目内容进行修改,得到更改配置内容表,基于所述更改配置内容表生成的注解配置请求。
本发明第三方面提供了一种注解配置设备,包括:存储器和至少一个处理器,所述存储器中存储有指令;所述至少一个处理器调用所述存储器中的所述指令,以使得所述注解配置设备执行上述的注解配置方法的步骤。
本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的注解配置方法的步骤。
本发明提供的技术方案中,获取选定部分的字节码内容并初始化至缓存数据库中,得到注解相关元数据;接收注解配置管理端发出的注解配置请求,其中,注解配置请求中包括注解配置元数据;根据注解配置元数据按照责任链模式更改注解相关元数据,得到更改注解元数据;根据更改注解元数据生成更改注解字节码,根据更改注解字节码更新选定部分的字节码内容。本发明实施例中,在配置一些较为复杂的功能时能够端到端地进行注解的配置,简化了操作步骤,简化了使开发工作的复杂程度。
附图说明
图1为本发明实施例中注解配置方法的一个实施例示意图;
图2为本发明实施例中注解配置方法的另一个实施例示意图;
图3为本发明实施例中注解配置方法的另一个实施例示意图;
图4为本发明实施例中注解配置方法的另一个实施例示意图;
图5为本发明实施例中注解配置装置的一个实施例示意图;
图6为本发明实施例中注解配置装置的另一个实施例示意图;
图7为本发明实施例中注解配置设备的一个实施例示意图。
具体实施方式
本发明实施例提供了一种注解配置方法、装置、设备及存储介质,获取选定部分的字节码内容并初始化至缓存数据库中,得到注解相关元数据;接收注解配置管理端发出的注解配置请求,其中,注解配置请求中包括注解配置元数据;根据注解配置元数据按照责任链模式更改注解相关元数据,得到更改注解元数据;根据更改注解元数据生成更改注解字节码,根据更改注解字节码更新选定部分的字节码内容。本发明实施例中,进行一些较为复杂的功能的配置时能够端到端地进行注解的配置,简化了操作步骤,简化了使开发工作的复杂程度。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中注解配置方法的一个实施例包括:
101、获取选定部分的字节码内容,将字节码内容初始化至缓存数据库中,得到注解相关元数据;
可以理解的是,本发明的执行主体可以为注解配置装置,还可以是终端或者服务器,具体此处不做限定。本发明实施例以服务器为执行主体为例进行说明。
本实施例中针对的是java注解的配置,尤其是java注解在控制层的应用,针对已有的程序,若要实现针对方法或类在用户、微服务、集群等多维度下,实现限流、熔断、锁等复杂功能时,每次对原始代码内容进行修改会使操作十分繁琐、效率降低。
本实施例中的注解配置方法是针对注解进行操作的,注解(Annotation)可以理解为代码里的特殊标记,这些标记可以在编译,类加载,运行时被读取,并执行相应的处理。而字节码(Byte-code)是一种包含执行程序,由一序列操作码或数据对组成的二进制文件,是一种中间码。从JDK5开始,Java增加对元数据的支持,也就是注解,注解与注释是有一定区别的,可以把注解理解为代码里的特殊标记,这些标记可以在编译,类加载,运行时被读取,并执行相应的处理。
在服务器开始工作时,利用java自身的反射功能获取选定部分的字节码内容,例如,本步骤中具体获取的是控制层(Controller)中的字节码内容,控制层负责具体的业务模块流程的控制,控制层主要调用业务层(Service)里面的接口控制具体的业务流程。获取到控制层中的字节码内容后,将字节码内容中与注解相关的部分提取出来,获得注解字节码内容,根据字节码内容中的类名称称,识别出获取注解相关字节码。
在本步骤之前,要预先获取现有的抽象语法树,并将该抽象语法树中的符号输入到符号表中这里的符号包括import节点上的符号,类名称,类成员以及方法等。符号表主要有符号地址和符号信息,用于语义检查和地址分配。基于该现有的抽象语法树中的映射关系,获取java语言相关的数据字典,根据所述数据字典确定编码映射关系。获取到注解相关字节码后,根据预先确定的编码映射关系生成元数据。
其中,该缓存数据库可以为Redis缓存数据库,Redis(Remote DictionaryServer),即远程字典服务,是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库。
102、接收注解配置管理端发出的注解配置请求;
其中,注解配置请求中包括注解配置元数据;接收注解配置管理端发出的注解配置请求,其中,该注解管理端是预先建立的,为供研发人员如管理人员、开发工程师使用的设备,开发人员在打开注解配置管理端后能够对注解配置管理端输入注解配置内容,其中,注解配置内容包括注解配置参数以及修改注解算法等操作。该注解配置管理端可以根据java语言相关的数据字典,确定管理端配置信息与注解配置元数据之间的配置映射关系。基于开发人员在管理端输入的注解配置内容,根据所述的配置映射关系生成注解配置元数据,随后将生成的至少一个注解配置元数据进行打包,生成注解配置请求。此外,在注解配置请求中,还包括开发人员在管理端输入的注解配置内容相关的配置顺序。
本申请中的注解配置服务器在接收到注解配置管理端发出的注解配置请求后,识别该注解配置请求中包含的注解配置元数据,并将该注解配置元数据传递至注解工作区域中。
103、根据注解配置元数据按照责任链模式更改注解相关元数据,得到更改注解元数据;
本实施例中,注解配置元数据中包括当前请求注解配置的范围以及注解配置的具体算法以及注解配置的参数,这些注解配置内容在前述步骤中根据配置映射关系生成注解配置元数据,将生成的注解配置元数据替换宿舍缓存数据库中原有的注解相关元数据内容,得到更改注解元数据。
责任链模式是一种软件设计模式,将处理对象连接成一条链,客户端向责任链发出一个请求,链上的对象都有机会来处理这一请求,而客户端不需要知道谁是具体的处理对象;这些对象使用链式存储结构,形成一个链,每个对象知道自己的下一个对象,一个对象对任务进行处理,可以添加一些操作后将对象传递个下一个任务。也可以在此对象上结束任务的处理,并结束任务,客户端负责组装链式结构,但是客户端不需要关心最终是哪个处理对象处理了任务。在本实施例中,客户端即为开发者使用的注解配置管理端。
在具体进行根据所述注解配置元数据更改所述注解相关元数据的操作时,将生成的注解配置元数据输入注解工作区域时,为避免请求发送者与接收者耦合在一起,这里采用责任链模式进行控制,也就是说,将需要配置的项目按照开发人员在管理端输入的注解配置内容相关的配置顺序连成责任链,当生成的注解配置元数据进入注解工作区域后,按照配置的项目顺序进行处理,责任链中的一个任务配置完毕后,再继续下一项的配置。用这种方式,开发人员在进行注解配置时,只需要在注解配置管理端输入想要配置的注解内容,注解配置管理端就会自动的对将生成的注解配置元数据发送到责任链上,通过责任链将请求的发送者和请求的处理者解耦,开发人员无须关心请求的处理细节和请求的传递,即可完成多项内容的配置。
此外,在注解配置时,注解配置内容中可以包含对欲配置的内容进行参数的配置,如可对限流维度配置,设置限流的数值,也可以对具体的算法进行更改,如限流的具体算法。
104、根据更改注解元数据生成更改注解字节码,根据更改注解字节码更新选定部分的字节码内容。
获取到上步骤中生成的更改注解元数据后,根据步骤101中获得到的java语言相关的数据字典,根据所述数据字典确定编码映射关系将更改注解元数据生成注解字节码,根据生成的注解字节码替换原选定部分的字节码内容,完成选定部分字节码的更新,完成注解的配置。
本发明实施例中,通过以上步骤,在配置一些较为复杂的功能时能够端到端地进行注解的配置,简化了操作步骤,简化了使开发工作的复杂程度。
请参阅图2,本发明实施例中注解配置方法的另一个实施例包括:
201、获取选定部分的字节码内容,读取选定部分的字节码内容中的类名称,基于类名称获取注解相关字节码,根据注解相关字节码,按照预设编码映射关系生成注解相关元数据;
本步骤中的内容与前述实施例中步骤101中内容基本相同,故在此不再赘述。
202、接收注解配置管理端发出的注解配置请求;
其中,注解配置请求中包括注解配置元数据;接收注解配置管理端发出的注解配置请求,其中,该注解管理端是预先建立的,为供研发人员如管理人员、开发工程师使用的设备,开发人员在打开注解配置管理端后能够对注解配置管理端输入注解配置内容,其中,注解配置内容包括注解配置参数以及修改注解算法等操作。该注解配置管理端可以根据java语言相关的数据字典,确定管理端配置信息与注解配置元数据之间的配置映射关系。基于开发人员在管理端输入的注解配置内容,根据所述的配置映射关系生成注解配置元数据,随后将生成的至少一个注解配置元数据进行打包,生成注解配置请求。
本申请中的注解配置服务器在接收到注解配置管理端发出的注解配置请求后,识别该注解配置请求中包含的注解配置元数据,并将该注解配置元数据传递至注解工作区域中。
203、读取注解相关元数据中的信息,按照责任链模式基于注解相关元数据中的信息确定注解相关元数据中的注解配置范围,根据注解配置元数据,按照责任链模式对注解配置范围内的注解相关元数据进行更改,得到更改注解元数据;
在本实施例中,进行具体的配置操作时,首先读取接收到的注解配置请求中的注解配置范围内容,其中,本步骤中所提及的注解配置范围包括针对方法或类在用户、微服务、集群等范围。例如,针对单个或用户群组进行限流、熔断等操作时,需要确定进行操作的用户名单,以便下一步的操作。读取到注解配置范围相关内容后,在缓存数据库中确定注解配置范围对应的元数据。
待确定完毕注解配置范围后,根据其余注解配置项目内容中的信息,对注解配置范围对应的元数据进行更改。其中,更改操作具体包括将生成的注解配置元数据替换所述缓存数据库中原有的注解相关元数据内容,得到更改注解元数据。
在具体进行根据所述注解配置元数据更改所述注解相关元数据的操作时,将生成的注解配置元数据输入注解工作区域时,为避免请求发送者与接收者耦合在一起,本实施例中构建了责任链模式,也就是说,按照需要配置的项目连成责任链,当生成的注解配置元数据进入注解工作区域后,按照配置的项目顺序进行处理,责任链中的一个任务配置完毕后,再继续下一项的配置。用这种方式,开发人员在进行注解配置时,只需要在注解配置管理端输入想要配置的注解内容,注解配置管理端就会自动的对将生成的注解配置元数据发送到责任链上,通过责任链将请求的发送者和请求的处理者解耦,开发人员无须关心请求的处理细节和请求的传递,即可完成多项内容的配置。
204、根据更改注解元数据生成更改注解字节码,根据更改注解字节码更新选定部分的字节码内容。
获取到上步骤中生成的更改注解元数据后,根据步骤201中获得到的java语言相关的数据字典,根据所述数据字典确定编码映射关系将更改注解元数据生成注解字节码,根据生成的注解字节码替换原选定部分的字节码内容,完成选定部分字节码的更新,完成注解的配置。
本发明实施例中,通过以上步骤,在配置一些较为复杂的功能时能够端到端地进行注解的配置,简化了操作步骤,简化了使开发工作的复杂程度。
请参阅图3,本发明实施例中注解配置方法的另一个实施例包括:
301、获取选定部分的字节码内容,读取选定部分的字节码内容中的类名称,基于类名称获取注解相关字节码,根据注解相关字节码,按照预设编码映射关系生成注解相关元数据;
本步骤中的内容与前述实施例中步骤101中内容基本相同,故在此不再赘述。
302、接收注解配置管理端发出的注解配置请求;
在本步骤中接收注解配置管理端发出的注解配置请求之前,首先要构建注解配置管理端,其中,该注解管理端是预先建立的,为供研发人员如管理人员、开发工程师使用的设备,开发人员在打开注解配置管理端后能够对注解配置管理端输入注解配置内容,其中,注解配置内容包括注解配置参数以及修改注解算法等操作。
具体地,注解配置管理端中利用HTTP协议获取原始代码中可配置的注解项目以及注解项目的可配置范围,根据原始代码中可配置的注解项目以及注解项目的可配置范围生成配置内容表,并将配置内容表保存至注解配置管理端中。在开发人员使用注解配置管理端进行注解配置的操作时,将配置内容表推送给开发人员,开发人员根据当前的需要配置的具体内容对所述配置内容表中的注解配置项目内容进行修改,填写完毕后,得到更改配置内容表。随后基于更改配置内容表生成注解配置元数据,并将生成的注解配置元数据打包生成注解配置请求,随后将注解配置请求发送给注解配置设备。其中,注解配置内容表中还包括注解配置项目实现的算法种类,根据开发人员输入的算法种类生成配置注解内容。
接收注解配置管理端发出的注解配置请求后,该注解配置管理端根据java语言相关的数据字典,确定管理端配置信息与注解配置元数据之间的配置映射关系。基于开发人员在管理端输入的注解配置内容,根据所述的配置映射关系生成注解配置元数据,随后将生成的至少一个注解配置元数据进行打包,生成注解配置请求。此外,在注解配置请求中,还包括开发人员在管理端输入的注解配置内容相关的注解配置范围读取顺序和注解配置顺序。
本申请中的注解配置服务器在接收到注解配置管理端发出的注解配置请求后,识别该注解配置请求中包含的注解配置元数据,并将该注解配置元数据传递至注解工作区域中。
303、读取注解相关元数据中的信息,按照责任链模式基于注解相关元数据中的信息确定注解相关元数据中的注解配置范围;
在本申请中,进行具体的配置操作时,首先读取接收到的注解配置请求中的注解配置范围内容,其中,本步骤中所提及的注解配置范围包括针对方法或类在用户、微服务、集群等范围。例如,针对单个或用户群组进行限流、熔断等操作时,需要确定进行操作的用户名单,以便下一步的操作。读取到注解配置范围相关内容后,在缓存数据库中确定注解配置范围对应的元数据。
责任链模式是一种软件设计模式,将处理对象连接成一条链,客户端向责任链发出一个请求,链上的对象都有机会来处理这一请求,而客户端不需要知道谁是具体的处理对象;这些对象使用链式存储结构,形成一个链,每个对象知道自己的下一个对象,一个对象对任务进行处理,可以添加一些操作后将对象传递个下一个任务。也可以在此对象上结束任务的处理,并结束任务,客户端负责组装链式结构,但是客户端不需要关心最终是哪个处理对象处理了任务。在本实施例中,客户端即为开发者使用的注解配置管理端。
具体地,进行基于注解相关元数据中的信息确定注解相关元数据中的注解配置范围的操作时,为避免请求发送者与接收者耦合在一起,这里采用责任链模式,也就是说,将需要读取注解相关元数据的项目按照开发人员在管理端输入的读取顺序连成责任链,按照责任链配置的顺序进行处理,责任链中的一个配置范围读取完毕后,再继续下一项配置范围读取。用这种方式,将请求的发送者和请求的处理者解耦,开发人员无须关心请求的处理细节和请求的传递,即可完成注解配置范围的读取。
304、获取注解配置元数据,并提取注解配置元数据中携带的用于生成更改注解元数据的当前注解配置项目的实现算法,根据实现算法按照预设编码映射关系生成新增元数据,按照责任链模式将新增元数据增加至缓存数据库中,得到更改注解元数据;
本实施例中的注解配置元数据中还包括注解配置项目的实现算法对应的元数据内容,其中,该实现算法对应的元数据内容具体为需要配置项目的内容的具体实现方式,例如,在进行熔断维度的配置时,注解配置元数据中还可以包括熔断操作实现的具体算法的相关内容。
根据所述实现算法对应的元数据内容按照前述的预设编码映射关系生成新增元数据,按照责任链模式将所述新增元数据增加至缓存数据库中,得到更改注解元数据。
在具体进行根据所述注解配置元数据更改所述注解相关元数据的操作时,将生成的注解配置元数据输入注解工作区域时,为避免请求发送者与接收者耦合在一起,本实施例中构建了责任链模式,也就是说,将需要配置的项目按照开发人员在管理端输入的注解配置内容相关的配置顺序连成责任链,当生成的注解配置元数据进入注解工作区域后,按照配置的项目顺序进行处理,责任链中的一个任务配置完毕后,再继续下一项的配置。用这种方式,开发人员在进行注解配置时,只需要在注解配置管理端输入想要配置的注解内容,注解配置管理端就会自动的对将生成的注解配置元数据发送到责任链上,通过责任链将请求的发送者和请求的处理者解耦,开发人员无须关心请求的处理细节和请求的传递,即可完成多项内容的配置。
在通过责任链模式进行多项内容的配置时还可以具体对当前注解配置项目的实现算法进行配置,举具体的例子进行说明,在进行限流操作时,可以在注解管理端预先配置限流判断算法,也就是说,在管理端进行配置时即输入限流操作的具体算法相关的内容,例如可以采用动态滑动窗口进行限流,也可以采用令牌桶法进行限流,将想要配置的算法通过注解配置管理端将相应的算法内容输入,管理端会根据java语言相关的数据字典,确定管理端配置信息与注解配置元数据之间的配置映射关系,将当前配置的算法信息生成限流维度新增元数据,将限流维度新增元数据增加至存数据库中得到更改注解元数据。
305、根据更改注解元数据生成更改注解字节码,根据更改注解字节码更新选定部分的字节码内容。
获取到上步骤中生成的更改注解元数据后,根据步骤301中获得到的java语言相关的数据字典,根据所述数据字典确定编码映射关系将更改注解元数据生成注解字节码,根据生成的注解字节码替换原选定部分的字节码内容,完成选定部分字节码的更新,完成注解的配置。
本发明实施例中,通过以上步骤,在配置一些较为复杂的功能时能够端到端地进行注解的配置,简化了操作步骤,简化了使开发工作的复杂程度。
请参阅图4,本发明实施例中注解配置方法的另一个实施例包括:
401、获取选定部分的字节码内容,读取选定部分的字节码内容中的类名称,基于类名称获取注解相关字节码,根据注解相关字节码,按照预设编码映射关系生成注解相关元数据;
本实施例中针对的是java注解的配置,尤其是java注解在控制层的应用,针对已有的程序,若要实现针对方法或类在用户、微服务、集群等多维度下,实现限流、熔断、锁等复杂功能时,每次对原始代码内容进行修改会使操作十分繁琐、效率降低。
本实施例中的注解配置方法是针对注解进行操作的,注解(Annotation)可以理解为代码里的特殊标记,这些标记可以在编译,类加载,运行时被读取,并执行相应的处理。而字节码(Byte-code)是一种包含执行程序,由一序列操作码或数据对组成的二进制文件,是一种中间码。从JDK5开始,Java增加对元数据的支持,也就是注解,注解与注释是有一定区别的,可以把注解理解为代码里的特殊标记,这些标记可以在编译,类加载,运行时被读取,并执行相应的处理。
在服务器开始工作时,利用java自身的反射功能获取选定部分的字节码内容,例如,本步骤中具体获取的是控制层(Controller)中的字节码内容,控制层负责具体的业务模块流程的控制,控制层主要调用业务层(Service)里面的接口控制具体的业务流程。获取到控制层中的字节码内容后,将字节码内容中与注解相关的部分提取出来,获得注解字节码内容,根据字节码内容中的类名称,识别出获取注解相关字节码。
在本步骤之前,要预先获取现有的抽象语法树,并将该抽象语法树中的符号输入到符号表中这里的符号包括import节点上的符号,类名称,类成员以及方法等。符号表主要有符号地址和符号信息,用于语义检查和地址分配。基于该现有的抽象语法树中的映射关系,获取java语言相关的数据字典,根据所述数据字典确定编码映射关系。获取到注解相关字节码后,根据预先确定的编码映射关系生成元数据。
其中,该缓存数据库可以为Redis缓存数据库,Redis(Remote DictionaryServer),即远程字典服务,是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库。
402、接收注解配置管理端发出的注解配置请求;
在本步骤中接收注解配置管理端发出的注解配置请求之前,首先要构建注解配置管理端,其中,该注解管理端是预先建立的,为供研发人员如管理人员、开发工程师使用的设备,开发人员在打开注解配置管理端后能够对注解配置管理端输入注解配置内容,其中,注解配置内容包括注解配置参数以及修改注解算法等操作。
具体地,注解配置管理端中利用HTTP协议获取原始代码中可配置的注解项目以及注解项目的可配置范围,根据原始代码中可配置的注解项目以及注解项目的可配置范围生成配置内容表,并将配置内容表保存至注解配置管理端中。在开发人员使用注解配置管理端进行注解配置的操作时,将配置内容表推送给开发人员,开发人员根据当前的需要配置的具体内容对所述配置内容表中的注解配置项目内容进行修改,填写完毕后,得到更改配置内容表。随后基于更改配置内容表生成注解配置元数据,并将生成的注解配置元数据打包生成注解配置请求,随后将注解配置请求发送给注解配置设备。
其中,注解配置内容表中还包括注解配置项目实现的算法种类,根据开发人员输入的算法种类生成配置注解内容。
接收注解配置管理端发出的注解配置请求后,该注解配置管理端根据java语言相关的数据字典,确定管理端配置信息与注解配置元数据之间的配置映射关系。基于开发人员在管理端输入的注解配置内容,根据所述的配置映射关系生成注解配置元数据,随后将生成的至少一个注解配置元数据进行打包,生成注解配置请求。
本申请中的注解配置服务器在接收到注解配置管理端发出的注解配置请求后,识别该注解配置请求中包含的注解配置元数据,此外,还要提取所述注解配置元数据中携带的用于生成更改注解元数据的当前注解配置项目的实现算法,并根据所述实现算法按照预设编码映射关系生成新增元数据;将所述新增元数据和注解配置元数据增加至缓存数据库,传递至注解工作区域中。
403、获取注解相关元数据中的使用维度元数据,判断注解功能是否开启,若开启,则继续;
具体地,在本步骤中,将注解配置范围的读取连成责任链进行处理,首先,获取注解配置内容中的使用维度内容,判断注解功能是否开启,若关闭,则关闭当前注解配置请求;若开启,则继续操作。
404、获取注解相关元数据中的用户维度元数据,确定当前注解配置请求针对的用户范围;
待上步骤中使用维度元数据获取完毕后,接下来获取注解配置内容中的用户维度内容,判断当前针对的用户维度范围,根据当前针对的用户维度范围判断是针对单个用户还是用户群组进行注解的配置,采用此种方法可以建立用户名单机制。确定当前注解配置请求针对的用户维度范围后,继续其他注解配置范围的读取。
405、获取注解相关元数据中的实例维度元数据,确定当前注解配置请求针对的实例范围;
待上步骤中用户维度元数据获取完毕后,获取注解配置内容中的实例维度内容,确定当前注解配置请求针对的实例范围,根据当前注解配置请求针对的实例范围确定针对的是单个实例进行注解配置操作还是针对所有实例做注解配置操作,确定完毕后继续其他注解配置范围的读取。
406、获取注解相关元数据中的时间维度元数据,确定当前注解配置请求针对的时间段范围;
待上步骤中实例维度元数据获取完毕后,获取注解配置内容的时间维度内容,确定当前注解配置请求针对的时间维度范围,根据当前注解配置请求针对的时间维度范围确定该注解配置请求是否针对特定的时间段,并确定针对的时间段范围,确定完毕后按照预设的顺序继续进行其他注解配置范围的确认,直到注解配置范围确认完毕。
407、获取注解相关元数据中的限流维度元数据,根据注解配置元数据中的限流维度配置元数据更改限流维度元数据,得到更改限流维度元数据;
在确定所述注解配置范围对应的元数据之后,接下来根据前述步骤中获得的所述注解配置元数据,对所述注解配置范围对应的元数据进行替换操作,得到更改注解元数据。具体地,在本步骤中将具体的更改内容按照预设顺序进行配置。
首先,获取注解配置元数据中的限流维度配置元数据,该限流维度配置元数据中包含限流操作中开发人员配置的流量峰值,根据该限流维度配置元数据对缓存数据库中的限流维度元数据进行替换,得到更改限流维度元数据,更改完毕后继续其他内容的配置。
408、获取注解相关元数据中的熔断维度元数据,根据注解配置元数据中的熔断维度配置元数据更改熔断维度元数据,得到更改熔断维度元数据;
待上步骤中限流维度元数据更改完毕后,获取注解配置元数据中的熔断维度配置元数据,该熔断维度配置元数据中包含熔断操作中开发人员配置的熔断阈值,根据该熔断维度配置元数据对缓存数据库中的熔断维度元数据进行替换,得到更改熔断维度元数据,更改完毕后继续其他内容的配置。
409、获取注解相关元数据中的锁定维度元数据,根据注解配置元数据中的锁定维度配置元数据更改锁定维度内容,得到更改锁定维度元数据;.
待上步骤中熔断维度元数据更改完毕后,获取注解配置元数据中的锁定维度配置元数据,该锁定维度配置元数据中包含是否获取锁、开启或关闭锁的配置内容,根据该锁定维度配置元数据对缓存数据库中的锁定维度元数据进行替换,得到更改锁定维度元数据,更改完毕后继续其他内容的配置。
410、获取注解相关元数据中的缓存维度元数据,根据注解配置元数据中的缓存维度配置元数据更改使用的缓存维度元数据,得到更改缓存维度元数据;
待上步骤中锁定维度元数据更改完毕后,获取注解配置元数据中的缓存维度配置元数据,该缓存维度配置元数据中包含打开缓存或关闭缓存的配置内容,根据该缓存维度配置元数据对缓存数据库中的缓存维度元数据进行替换,得到更改缓存维度元数据,更改完毕后继续其他内容的配置。
411、获取注解相关元数据中的权限维度元数据,根据注解配置元数据中的权限维度配置元数据更改权限维度元数据,得到更改权限维度元数据;
待上步骤中缓存维度元数据更改完毕后,获取注解配置元数据中的权限维度配置元数据,该权限维度配置元数据中包含开启权限或关闭权限的注解配置内容,根据该权限维度配置元数据对缓存数据库中的权限维度元数据进行替换,得到更改权限维度元数据。
412、根据更改注解元数据生成更改注解字节码,根据更改注解字节码更新选定部分的字节码内容。
获取到上步骤中生成的更改注解元数据后,根据步骤401中获得到的java语言相关的数据字典,根据所述数据字典确定编码映射关系将更改注解元数据生成注解字节码,根据生成的注解字节码替换原选定部分的字节码内容,完成选定部分字节码的更新,完成注解的配置。
本发明实施例中,通过建立注解管理端,生成责任链模式的注解配置请求,使得本实施例在配置一些较为复杂的功能时能够端到端地进行注解的配置,简化了操作步骤,简化了使开发工作的复杂程度。
上面对本发明实施例中注解配置方法进行了描述,下面对本发明实施例中注解配置装置进行描述,请参阅图5,本发明实施例中注解配置装置一个实施例包括:
获取模块501,用于获取选定部分的字节码内容,将所述字节码内容初始化至缓存数据库中,得到注解相关元数据;
请求接收模块502,用于接收注解配置管理端发出的注解配置请求,其中,所述注解配置请求中包括注解配置元数据;
元数据更改模块503,用于根据所述注解配置元数据按照责任链模式更改所述注解相关元数据,得到更改注解元数据;
字节码更新模块504,用于根据所述更改注解元数据生成更改注解字节码,根据所述更改注解字节码更新选定部分的字节码内容。
本发明实施例中,通过以上步骤,在配置一些较为复杂的功能时能够端到端地进行注解的配置,简化了操作步骤,简化了使开发工作的复杂程度。
请参阅图6,本发明实施例中注解配置装置的另一个实施例包括:
获取模块501,用于获取选定部分的字节码内容,将所述字节码内容初始化至缓存数据库中,得到注解相关元数据;
请求接收模块502,用于接收注解配置管理端发出的注解配置请求,其中,所述注解配置请求中包括注解配置元数据;
元数据更改模块503,用于根据所述注解配置元数据按照责任链模式更改所述注解相关元数据,得到更改注解元数据;
字节码更新模块504,用于根据所述更改注解元数据生成更改注解字节码,根据所述更改注解字节码更新选定部分的字节码内容。
可选的,所述元数据更改模块503包括:
范围确定单元5031,用于读取所述注解相关元数据中的信息,按照责任链模式基于所述注解相关元数据中的信息确定所述注解相关元数据中的注解配置范围;
更改单元5032,用于根据所述注解配置元数据,按照责任链模式对所述注解配置范围内的注解相关元数据进行更改,得到更改注解元数据。
可选的,所述范围确定单元5031具体还用于:
获取所述注解相关元数据中的使用维度元数据,判断注解功能是否开启,若开启,则继续;
获取所述注解相关元数据中的用户维度元数据,确定当前注解配置请求针对的用户范围;
获取所述注解相关元数据中的实例维度元数据,确定当前注解配置请求针对的实例范围;
获取所述注解相关元数据中的时间维度元数据,确定当前注解配置请求针对的时间段范围。
可选的,所述更改单元5032具体还用于:
获取所述注解相关元数据中的限流维度元数据,根据注解配置元数据中的限流维度配置元数据更改所述限流维度元数据,得到更改限流维度元数据;
获取所述注解相关元数据中的熔断维度元数据,根据注解配置元数据中的熔断维度配置元数据更改所述熔断维度元数据,得到更改熔断维度元数据;
获取所述注解相关元数据中的锁定维度元数据,根据注解配置元数据中的锁定维度配置元数据更改所述锁定维度内容,得到更改锁定维度元数据;
获取所述注解相关元数据中的缓存维度元数据,根据注解配置元数据中的缓存维度配置元数据更改所述使用的缓存维度元数据,得到更改缓存维度元数据;
获取所述注解相关元数据中的权限维度元数据,根据注解配置元数据中的权限维度配置元数据更改所述权限维度元数据,得到更改权限维度元数据。
可选的,所述更改单元5032还用于:
获取所述注解配置元数据,并提取所述注解配置元数据中携带的用于生成更改注解元数据的当前注解配置项目的实现算法;根据所述实现算法按照预设编码映射关系生成新增元数据,将所述新增元数据增加至缓存数据库中,得到更改注解元数据。
可选的,所述请求接收模块502中的注解配置请求具体为通过获取所述注解配置管理端中存储的配置内容表,并根据用户需要配置的具体内容对所述配置内容表中的注解配置项目内容进行修改,得到更改配置内容表,基于所述更改配置内容表生成的注解配置请求。
本发明实施例中,通过建立注解管理端,生成责任链模式的注解配置请求,使得本实施例在配置一些较为复杂的功能时能够端到端地进行注解的配置,简化了操作步骤,简化了使开发工作的复杂程度。
上面图5和图6从模块化功能实体的角度对本发明实施例中的注解配置装置进行详细描述,下面从硬件处理的角度对本发明实施例中注解配置设备进行详细描述。
图7是本发明实施例提供的一种注解配置设备的结构示意图,该注解配置设备700可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessing units,CPU)710(例如,一个或一个以上处理器)和存储器720,一个或一个以上存储应用程序733或数据732的存储介质730(例如一个或一个以上海量存储设备)。其中,存储器720和存储介质730可以是短暂存储或持久存储。存储在存储介质730的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对注解配置设备700中的一系列指令操作。更进一步地,处理器710可以设置为与存储介质730通信,在注解配置设备700上执行存储介质730中的一系列指令操作。
注解配置设备700还可以包括一个或一个以上电源740,一个或一个以上有线或无线网络接口750,一个或一个以上输入输出接口760,和/或,一个或一个以上操作系统731,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图7示出的注解配置设备结构并不构成对注解配置设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本发明还提供一种注解配置设备,所述计算机设备包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行上述各实施例中的所述注解配置方法的步骤。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述注解配置方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (7)
1.一种注解配置方法,其特征在于,所述注解配置方法包括:
获取选定部分的字节码内容,将所述字节码内容初始化至缓存数据库中,得到注解相关元数据;
接收注解配置管理端发出的注解配置请求,其中,所述注解配置请求中包括注解配置元数据;
根据所述注解配置元数据按照责任链模式更改所述注解相关元数据,得到更改注解元数据;
所述根据所述注解配置元数据按照责任链模式更改所述注解相关元数据,得到更改注解元数据包括:
读取所述注解相关元数据中的信息,按照责任链模式基于所述注解相关元数据中的信息确定所述注解相关元数据中的注解配置范围;
根据所述注解配置元数据,按照责任链模式对所述注解配置范围内的注解相关元数据进行更改,得到更改注解元数据;
所述根据所述注解配置元数据,按照责任链模式对所述注解配置范围内的注解相关元数据进行更改,得到更改注解元数据包括:
获取所述注解相关元数据中的限流维度元数据,根据注解配置元数据中的限流维度配置元数据更改所述限流维度元数据,得到更改限流维度元数据;
获取所述注解相关元数据中的熔断维度元数据,根据注解配置元数据中的熔断维度配置元数据更改所述熔断维度元数据,得到更改熔断维度元数据;
获取所述注解相关元数据中的锁定维度元数据,根据注解配置元数据中的锁定维度配置元数据更改所述锁定维度元数据,得到更改锁定维度元数据;
获取所述注解相关元数据中的缓存维度元数据,根据注解配置元数据中的缓存维度配置元数据更改所述缓存维度元数据,得到更改缓存维度元数据;
获取所述注解相关元数据中的权限维度元数据,根据注解配置元数据中的权限维度配置元数据更改所述权限维度元数据,得到更改权限维度元数据;
所述根据所述注解配置元数据,按照责任链模式对所述注解配置范围内的注解相关元数据进行更改,得到更改注解元数据还包括:
获取所述注解配置元数据,并提取所述注解配置元数据中携带的用于生成更改注解元数据的当前注解配置项目的实现算法;
根据所述实现算法按照预设编码映射关系生成新增元数据,将所述新增元数据增加至缓存数据库中,得到更改注解元数据;
根据所述更改注解元数据生成更改注解字节码,根据所述更改注解字节码更新选定部分的字节码内容。
2.根据权利要求1所述的注解配置方法,其特征在于,所述获取选定部分的字节码内容,将所述字节码内容初始化至缓存数据库中,得到注解相关元数据包括:
获取选定部分的字节码内容,读取所述选定部分的字节码内容中的类名称,基于所述类名称获取注解相关字节码;
根据所述注解相关字节码,按照预设编码映射关系生成注解相关元数据。
3.根据权利要求1所述的注解配置方法,其特征在于,所述读取所述注解相关元数据中的信息,按照责任链模式基于所述注解相关元数据中的信息确定所述注解相关元数据中的注解配置范围包括:
获取所述注解相关元数据中的使用维度元数据,判断注解功能是否开启,若开启,则继续;
获取所述注解相关元数据中的用户维度元数据,确定当前注解配置请求针对的用户范围;
获取所述注解相关元数据中的实例维度元数据,确定当前注解配置请求针对的实例范围;
获取所述注解相关元数据中的时间维度元数据,确定当前注解配置请求针对的时间段范围。
4.根据权利要求1-3中任一项所述的注解配置方法,其特征在于,所述注解配置请求为通过获取所述注解配置管理端中存储的配置内容表,并根据用户需要配置的具体内容对所述配置内容表中的注解配置项目内容进行修改,得到更改配置内容表,基于所述更改配置内容表生成的注解配置请求。
5.一种注解配置装置,执行如权利要求1-4中任一项所述的注解配置方法,其特征在于,所述注解配置装置包括:
获取模块,用于获取选定部分的字节码内容,将所述字节码内容初始化至缓存数据库中,得到注解相关元数据;
请求接收模块,用于接收注解配置管理端发出的注解配置请求,其中,所述注解配置请求中包括注解配置元数据;
元数据更改模块,用于根据所述注解配置元数据按照责任链模式更改所述注解相关元数据,得到更改注解元数据;
字节码更新模块,用于根据所述更改注解元数据生成更改注解字节码,根据所述更改注解字节码更新选定部分的字节码内容。
6.一种注解配置设备,其特征在于,所述注解配置设备包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互联;
所述至少一个处理器调用所述存储器中的所述指令,以使得所述注解配置设备执行如权利要求1-4中任一项所述的注解配置方法的步骤。
7.一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,其特征在于,所述指令被处理器执行时实现如权利要求1-4中任一项所述注解配置方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110270342.5A CN112988225B (zh) | 2021-03-12 | 2021-03-12 | 注解配置方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110270342.5A CN112988225B (zh) | 2021-03-12 | 2021-03-12 | 注解配置方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112988225A CN112988225A (zh) | 2021-06-18 |
CN112988225B true CN112988225B (zh) | 2024-04-05 |
Family
ID=76334636
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110270342.5A Active CN112988225B (zh) | 2021-03-12 | 2021-03-12 | 注解配置方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112988225B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113627138A (zh) * | 2021-08-05 | 2021-11-09 | 金航数码科技有限责任公司 | 一种工程注释变更方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1063611A2 (en) * | 1999-06-22 | 2000-12-27 | Eastman Kodak Company | Method for modification of non-image data in an image processing chain |
CN101086737A (zh) * | 2006-06-07 | 2007-12-12 | 富士施乐株式会社 | 用于文档管理的装置、计算机可读介质和方法 |
CN106656622A (zh) * | 2016-12-29 | 2017-05-10 | 深圳Tcl新技术有限公司 | 一种接口调用任务配置的方法与装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170249171A1 (en) * | 2016-02-25 | 2017-08-31 | Brocade Communications Systems, Inc. | Runtime Configuration of Servlet Filtering Using Dynamic Injection |
-
2021
- 2021-03-12 CN CN202110270342.5A patent/CN112988225B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1063611A2 (en) * | 1999-06-22 | 2000-12-27 | Eastman Kodak Company | Method for modification of non-image data in an image processing chain |
CN101086737A (zh) * | 2006-06-07 | 2007-12-12 | 富士施乐株式会社 | 用于文档管理的装置、计算机可读介质和方法 |
CN106656622A (zh) * | 2016-12-29 | 2017-05-10 | 深圳Tcl新技术有限公司 | 一种接口调用任务配置的方法与装置 |
Non-Patent Citations (1)
Title |
---|
基于元数据的软件框架研究及优化;肖铭轩;《中国优秀硕士学位论文全文数据库 (信息科技辑)》;20180315(第03期);I138-794 * |
Also Published As
Publication number | Publication date |
---|---|
CN112988225A (zh) | 2021-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111209004B (zh) | 代码转换方法及装置 | |
CN106663002B (zh) | Rest服务源代码生成 | |
EP3502896A1 (en) | Generation of an adapters configuration user interface | |
US8650320B1 (en) | Integration server supporting multiple receiving channels | |
US20140157243A1 (en) | System for Translating Diverse Programming Languages | |
US20150242194A1 (en) | System for Translating Diverse Programming Languages | |
CN103164249A (zh) | 用于脚本语言编译器的扩展机制 | |
US20050223101A1 (en) | Computer-implemented method, system and program product for resolving prerequisites for native applications utilizing an open service gateway initiative ( OSGi) framework | |
US20030055862A1 (en) | Methods, systems, and articles of manufacture for managing systems using operation objects | |
CN108595187A (zh) | 安卓安装包集成软件开发工具包的法、装置及存储介质 | |
CN112000320A (zh) | 自动化代码生成方法、装置、设备及存储介质 | |
CN112988225B (zh) | 注解配置方法、装置、设备及存储介质 | |
Belson et al. | A survey of asynchronous programming using coroutines in the Internet of Things and embedded systems | |
CN112769706A (zh) | 组件化路由方法及系统 | |
CN115543479A (zh) | 一种适用于动态参数的接口调用解析方法及装置 | |
CN113515303B (zh) | 一种项目转型方法、装置和设备 | |
CN111240772A (zh) | 一种基于区块链的数据处理方法、装置及存储介质 | |
CN111736844B (zh) | 一种数据库云服务标准接口及实现方法 | |
WO2002027486A1 (en) | Methods and apparatus for generating unique identifiers for software components | |
EP3005087A1 (en) | Declarative configuration elements | |
Frey et al. | MAMBA: A measurement architecture for model-based analysis | |
Südholt | A model of components with non-regular protocols | |
US20220222106A1 (en) | Automatic run suspension management | |
CN112965721A (zh) | 基于Android的项目编译方法、装置、计算机设备及存储介质 | |
Moebius et al. | Model-driven code generation for secure smart card applications |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |