CN116048478B - 一种字典转义方法、装置、设备及计算机可读存储介质 - Google Patents
一种字典转义方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN116048478B CN116048478B CN202310208152.XA CN202310208152A CN116048478B CN 116048478 B CN116048478 B CN 116048478B CN 202310208152 A CN202310208152 A CN 202310208152A CN 116048478 B CN116048478 B CN 116048478B
- Authority
- CN
- China
- Prior art keywords
- dictionary
- attribute field
- escape
- target
- function
- 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 44
- 230000006870 function Effects 0.000 claims description 141
- 238000004590 computer program Methods 0.000 claims description 10
- 230000002159 abnormal effect Effects 0.000 claims description 5
- 230000000694 effects Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
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/315—Object-oriented languages
-
- 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
-
- 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/51—Source to source
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明公开了一种字典转义方法,包括:获取预创建的第一自定义注解和第二自定义注解;调用各系统函数,并通过面向切面编程对各系统函数中标记第一自定义注解的系统函数进行拦截,得到目标系统函数;获取目标系统函数的返回结果对象并进行对象反射,得到对象属性字段数组;从对象属性字段数组中查找标记第二自定义注解的各目标属性字段;调用预设的字典转义函数,分别将各目标属性字段的属性字段信息和字典值传入字典转义函数,根据各属性字段信息查找相应的目标实现类对各字典值进行字典转义。本发明增加了使用的自由度和兼容度,提升了字典转义效率。本发明还公开了一种装置、设备及存储介质,具有相应技术效果。
Description
技术领域
本发明涉及计算机应用技术领域,特别是涉及一种字典转义方法、装置、设备及计算机可读存储介质。
背景技术
随着互联网技术的发展,各类基础技术迭代也在不断更新,在系统业务中经常需要用到数据字典转义功能,数据的特定的编码转换成通俗易懂的中文进行展示,在列表展示和列表导出等业务大量使用该功能。
由于分布式和微服务技术的广泛使用,目前业务系统多采用的是微服务技术架构来进行开发,若通过单一的基于AOP(Aspect Oriented Programming,面向切面编程)+数据库数据来源数据字典转义方法已经无法支持各系统模块的需求,缺少可拓展性和兼容性。
综上所述,如何有效地解决现有的字典转义方法无法支持各系统模块的需求,缺少可拓展性和兼容性等问题,是目前本领域技术人员急需解决的问题。
发明内容
本发明的目的是提供一种字典转义方法,该方法增加了使用的自由度和兼容度,提升了字典转义效率;本发明的另一目的是提供一种字典转义装置、设备及计算机可读存储介质。
为解决上述技术问题,本发明提供如下技术方案:
一种字典转义方法,包括:
获取预创建的第一自定义注解和第二自定义注解;
调用各系统函数,并通过面向切面编程对各所述系统函数中标记所述第一自定义注解的系统函数进行拦截,得到目标系统函数;
获取所述目标系统函数的返回结果对象,并对所述返回结果对象进行对象反射,得到对象属性字段数组;
从所述对象属性字段数组中查找标记所述第二自定义注解的各属性字段,并将标记所述第二自定义注解的各属性字段确定为各目标属性字段;
调用预设的字典转义函数,分别将各所述目标属性字段的属性字段信息和字典值传入所述字典转义函数,以使所述字典转义函数根据各所述属性字段信息查找相应的目标实现类,并分别利用各所述目标实现类对应的字典数据对各所述字典值进行字典转义,得到转义结果。
在本发明的一种具体实施方式中,分别利用各所述目标实现类对应的字典数据对各所述字典值进行字典转义,包括:
分别获取各所述目标属性字段的编码值;
分别根据各所述编码值查询是否存在各所述目标实现类对应的目标字典缓存数据;
若是,则利用所述目标字典缓存数据对所述字典值进行字典转义;
若否,则调用实现类的查询函数查询所述目标实现类对应的字典数据,利用查询到的字典数据对所述字典值进行字典转义。
在本发明的一种具体实施方式中,在利用查询到的字典数据对所述字典值进行字典转义之后,还包括:
对查询到的字典数据进行缓存。
在本发明的一种具体实施方式中,所述字典转义函数根据各所述属性字段信息查找相应的目标实现类,包括:
所述字典转义函数从继承有预创建的抽象字典来源值类的各实现类中查找各所述属性字段信息分别对应的目标实现类。
在本发明的一种具体实施方式中,所述字典转义函数从继承有预创建的抽象字典来源值类的各实现类中查找各所述属性字段信息分别对应的目标实现类,包括:
所述字典转义函数从Spring Ioc容器内继承有预创建的抽象字典来源值类的各实现类中查找各所述属性字段信息分别对应的目标实现类。
在本发明的一种具体实施方式中,在所述字典转义函数根据各所述属性字段信息查找相应的目标实现类之后,还包括:
当存在根据所述属性字段信息查找相应的目标实现类失败时,打印异常日志提示。
在本发明的一种具体实施方式中,将标记所述第二自定义注解的各属性字段确定为各目标属性字段,包括:
记录标记所述第二自定义注解的各所述属性字段的属性字段名称;
将标记所述第二自定义注解的各所述属性字段转化为Json对象;
分别获取各所述Json对象的键值;
针对每个标记所述第二自定义注解的属性字段,判断所述属性字段名称与相应的键值是否相同;
若是,则将所述属性字段名称与相应的键值相同的属性字段确定为目标属性字段。
一种字典转义装置,包括:
注解获取模块,用于获取预创建的第一自定义注解和第二自定义注解;
函数拦截模块,用于调用各系统函数,并通过面向切面编程对各所述系统函数中标记所述第一自定义注解的系统函数进行拦截,得到目标系统函数;
字段数组获得模块,用于获取所述目标系统函数的返回结果对象,并对所述返回结果对象进行对象反射,得到对象属性字段数组;
属性字段确定模块,用于从所述对象属性字段数组中查找标记所述第二自定义注解的各属性字段,并将标记所述第二自定义注解的各属性字段确定为各目标属性字段;
字典转义模块,用于调用预设的字典转义函数,分别将各所述目标属性字段的属性字段信息和字典值传入所述字典转义函数,以使所述字典转义函数根据各所述属性字段信息查找相应的目标实现类,并分别利用各所述目标实现类对应的字典数据对各所述字典值进行字典转义,得到转义结果。
一种字典转义设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如前所述字典转义方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前所述字典转义方法的步骤。
本发明所提供的字典转义方法,获取预创建的第一自定义注解和第二自定义注解;调用各系统函数,并通过面向切面编程对各系统函数中标记第一自定义注解的系统函数进行拦截,得到目标系统函数;获取目标系统函数的返回结果对象,并对返回结果对象进行对象反射,得到对象属性字段数组;从对象属性字段数组中查找标记第二自定义注解的各属性字段,并将标记第二自定义注解的各属性字段确定为各目标属性字段;调用预设的字典转义函数,分别将各目标属性字段的属性字段信息和字典值传入字典转义函数,以使字典转义函数根据各属性字段信息查找相应的目标实现类,并分别利用各目标实现类对应的字典数据对各字典值进行字典转义,得到转义结果。
由上述技术方案可知,通过将标记第二自定义注解的各目标属性字段的属性字段信息和字典值传入字典转义函数,利用字典转义函数根据各属性字段信息查找相应的目标实现类,分别利用各目标实现类对应的字典数据对各字典值进行字典转义。通过自定义注解实现了字典来源值类的拓展,从而支持多类系统模块的需求,增加了使用的自由度和兼容度。通过设置统一的字典转义函数,减少开发人员的重复工作时间,提升了字典转义效率。
相应的,本发明还提供了与上述字典转义方法相对应的字典转义装置、设备和计算机可读存储介质,具有上述技术效果,在此不再赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中字典转义方法的一种实施流程图;
图2为本发明实施例中字典转义方法的另一种实施流程图;
图3为本发明实施例中一种字典转义装置的结构框图;
图4为本发明实施例中一种字典转义设备的结构框图;
图5为本实施例提供的一种字典转义设备的具体结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,图1为本发明实施例中字典转义方法的一种实施流程图,该方法可以包括以下步骤:
S101:获取预创建的第一自定义注解和第二自定义注解。
预先创建用于标记系统函数的第一自定义注解和用于标记属性字段的第二自定义注解。第二自定义注解具有以下字段属性:模块,类型,编码,字典值来源类型,自定义字典值,枚举字典值等。获取预创建的第一自定义注解和第二自定义注解。
S102:调用各系统函数,并通过面向切面编程对各系统函数中标记第一自定义注解的系统函数进行拦截,得到目标系统函数。
系统中包含多个系统函数,在获取到预创建的第一自定义注解之后,调用各系统函数,并通过面向切面编程(Aspect Oriented Programming,AOP)对各系统函数中标记第一自定义注解的系统函数进行拦截,得到目标系统函数。
S103:获取目标系统函数的返回结果对象,并对返回结果对象进行对象反射,得到对象属性字段数组。
在通过拦截得到目标系统函数之后,获取目标系统函数的返回结果对象,并对返回结果对象进行对象反射,得到对象属性字段数组。
对象反射指通过字符串的形式操作对象相关属性,即通过字符串让对象自省自检是否有字符串表示的属性。
S104:从对象属性字段数组中查找标记第二自定义注解的各属性字段,并将标记第二自定义注解的各属性字段确定为各目标属性字段。
在获取到预创建的第二自定义注解,并对返回结果对象进行对象反射,得到对象属性字段数组之后,对象属性字段数组中包含多个属性字段,从对象属性字段数组中查找标记第二自定义注解的各属性字段,并将标记第二自定义注解的各属性字段确定为各目标属性字段。
在本发明的一种具体实施方式中,将标记第二自定义注解的各属性字段确定为各目标属性字段,可以包括以下步骤:
步骤一:记录标记第二自定义注解的各属性字段的属性字段名称;
步骤二:将标记第二自定义注解的各属性字段转化为Json对象;
步骤三:分别获取各Json对象的键值;
步骤四:针对每个标记第二自定义注解的属性字段,判断属性字段名称与相应的键值是否相同,若是,则执行步骤五,若否,则不做处理;
步骤五:将属性字段名称与相应的键值相同的属性字段确定为目标属性字段。
为方便描述,可以将上述五个步骤结合起来进行说明。
对象属性字段数组中每个属性字段均有各自对应的对其进行唯一标识的属性字段名称,在从对象属性字段数组中查找标记第二自定义注解的各属性字段之后,记录标记第二自定义注解的各属性字段的属性字段名称,将标记第二自定义注解的各属性字段转化为Json((JavaScript Object Notation))对象,分别获取各Json对象的键(key)值,针对每个标记第二自定义注解的属性字段,判断属性字段名称与相应的键值是否相同,若是,则说明该属性字段是需要进行字典转义的属性字段,将属性字段名称与相应的键值相同的属性字段确定为目标属性字段,若否,则说明该属性字段不是需要进行字典转义的属性字段,不做处理。通过将标记第二自定义注解的各属性字段转化为Json对象,将属性字段名称与Json对象的键值作比较来确定是否为需要进行字典转义的属性字段,充分利用了Json易于人阅读和编写,可以在多种语言之间进行数据交换,易于机器解析和生成等优点。
S105:调用预设的字典转义函数,分别将各目标属性字段的属性字段信息和字典值传入字典转义函数,以使字典转义函数根据各属性字段信息查找相应的目标实现类,并分别利用各目标实现类对应的字典数据对各字典值进行字典转义,得到转义结果。
预先设置通过的字典转义函数,各目标属性字段包含属性字段信息和字典值,属性字段信息中包含指示具体类型的实现类的信息,字典值即为待转义的对象。在将标记第二自定义注解的各属性字段确定为各目标属性字段之后,调用预设的字典转义函数,分别将各目标属性字段的属性字段信息和字典值传入字典转义函数。字典转义函数根据各属性字段信息查找相应的目标实现类。分别利用各目标实现类对应的字典数据对各字典值进行字典转义,得到转义结果。通过设置统一的字典转义函数,减少开发人员的重复工作时间,提升了字典转义效率。通过自定义注解实现了字典来源值类的拓展,从而支持多类系统模块的需求,增加了使用的自由度和兼容度。
在本发明的一种具体实施方式中,字典转义函数根据各属性字段信息查找相应的目标实现类,可以包括以下步骤:
字典转义函数从继承有预创建的抽象字典来源值类的各实现类中查找各属性字段信息分别对应的目标实现类。
预先创建基础的抽象字典来源值类,该抽象字典来源值类里面可以定义两个函数,一个是查询缓存函数实现,一个是字典值数据结构组装抽象函数。创建基础数据库类型来源值类,通过继承抽象字典来源值类,实现字典值数据结构组装抽象函数,实现函数里封装数据库来源字典值数据结构组装逻辑。创建基础枚举型类型来源值类,通过继承抽象字典来源值类,实现字典值数据结构组装抽象函数,实现函数里封装枚举型来源字典值数据结构组装逻辑。从而可以自定义实现不同的类型来源值类,来进行扩展和兼容。
字典转义函数从继承有预创建的抽象字典来源值类的各实现类中查找各属性字段信息分别对应的目标实现类。通过从继承有预创建的抽象字典来源值类的各实现类中查找各属性字段信息分别对应的目标实现类,缩小了查找范围,提升了查找速度。
在本发明的一种具体实施方式中,字典转义函数从继承有预创建的抽象字典来源值类的各实现类中查找各属性字段信息分别对应的目标实现类,可以包括以下步骤:
字典转义函数从Spring Ioc容器内继承有预创建的抽象字典来源值类的各实现类中查找各属性字段信息分别对应的目标实现类。
在创建完成继承有预创建的抽象字典来源值类之后,在类上添加@Component注解标记系统启动时会自动注入到Spring Ioc容器中。字典转义函数从Spring Ioc容器内继承有预创建的抽象字典来源值类的各实现类中查找各属性字段信息分别对应的目标实现类。从而实现了利用Spring Ioc容器对各实现类进行统一管理。
由上述技术方案可知,通过将标记第二自定义注解的各目标属性字段的属性字段信息和字典值传入字典转义函数,利用字典转义函数根据各属性字段信息查找相应的目标实现类,分别利用各目标实现类对应的字典数据对各字典值进行字典转义。通过自定义注解实现了字典来源值类的拓展,从而支持多类系统模块的需求,增加了使用的自由度和兼容度。通过设置统一的字典转义函数,减少开发人员的重复工作时间,提升了字典转义效率。
需要说明的是,基于上述实施例,本发明实施例还提供了相应的改进方案。在后续实施例中涉及与上述实施例中相同步骤或相应步骤之间可相互参考,相应的有益效果也可相互参照,在下文的改进实施例中不再一一赘述。
在本发明的一种具体实施方式中,在字典转义函数根据各属性字段信息查找相应的目标实现类之后,该方法还可以包括以下步骤:
当存在根据属性字段信息查找相应的目标实现类失败时,打印异常日志提示。
在字典转义函数根据各属性字段信息查找相应的目标实现类之后,当存在根据属性字段信息查找相应的目标实现类失败时,打印异常日志提示,从而及时提示用户存在目标属性字段对转义所需的目标实现类查找失败。
参见图2,图2为本发明实施例中字典转义方法的另一种实施流程图,该方法可以包括以下步骤:
S201:获取预创建的第一自定义注解和第二自定义注解。
S202:调用各系统函数,并通过面向切面编程对各系统函数中标记第一自定义注解的系统函数进行拦截,得到目标系统函数。
创建面向切面编程(AOP)类,在该类上标记使用@Aspect注解,从而声明这是一个切面类,并标记使用@Component注解,从而自动注入到Spring Ioc容器中。
创建切点函数,并标记@Pointcut注解,@Pointcut的类型为@annotation类型,切点的值为第一自定义注解的类包地址。
创建执行函数,并标记@Around注解(环绕通知),@Around注解的值为切点函数的名称。
类执行函数实现如下:
通过面向切面编程切点的执行对象ProceedingJoinPoint.proceed()方法获取到函数执行的返回结果值。
调用转义工具类的转义函数,将返回结果值做参数来进行具体的字典转义,接收函数返回结果。
S203:获取目标系统函数的返回结果对象,并对返回结果对象进行对象反射,得到对象属性字段数组。
S204:从对象属性字段数组中查找标记第二自定义注解的各属性字段,并将标记第二自定义注解的各属性字段确定为各目标属性字段。
S205:调用预设的字典转义函数,分别将各目标属性字段的属性字段信息和字典值传入字典转义函数,以使字典转义函数根据各属性字段信息查找相应的目标实现类。
S206:分别获取各目标属性字段的编码值。
各目标属性字段均存在各自对应的编码(code)值,在将标记第二自定义注解的各属性字段确定为各目标属性字段之后,分别获取各目标属性字段的编码值。
S207:分别根据各编码值查询是否存在各目标实现类对应的目标字典缓存数据,若是,则执行步骤S208,若否,则执行步骤S209。
在分别获取到各目标属性字段的编码值之后,分别根据各编码值查询是否存在各目标实现类对应的目标字典缓存数据,若是,则说明先前已经缓存了目标实现类对应的目标字典缓存数据,执行步骤S208,若否,则说明先前未缓存目标实现类对应的目标字典缓存数据,执行步骤S209。
查询缓存函数实现采用Redis(Remote Dictionary Server,远程字典服务)进行数据缓存的模式。Redis是一个开源、内存中数据结构存储,用作数据库、缓存和消息代理的中间件。
S208:利用目标字典缓存数据对字典值进行字典转义,得到转义结果。
当根据编码值查询到目标实现类对应的目标字典缓存数据时,说明先前已经缓存了目标实现类对应的目标字典缓存数据,利用目标字典缓存数据对字典值进行字典转义,得到转义结果。通过支持缓存,减少数据库压力,提升了查询速度,释放资源占用。
S209:调用实现类的查询函数查询目标实现类对应的字典数据,利用查询到的字典数据对字典值进行字典转义。
当根据编码值未查询目标实现类对应的目标字典缓存数据时,说明先前未缓存目标实现类对应的目标字典缓存数据,调用实现类的查询函数查询目标实现类对应的字典数据,利用查询到的字典数据对字典值进行字典转义。
S210:对查询到的字典数据进行缓存。
在调用实现类的查询函数查询目标实现类对应的字典数据之后,对查询到的字典数据进行缓存,从而便于后续在利用相同的目标实现类进行字典转义时直接调取缓存中的字典数据对相应的属性字段进行字典转义,提升了字典转义效率,降低了数据库压力。
相应于上面的方法实施例,本发明还提供了一种字典转义装置,下文描述的字典转义装置与上文描述的字典转义方法可相互对应参照。
参见图3,图3为本发明实施例中一种字典转义装置的结构框图,该装置可以包括:
注解获取模块31,用于获取预创建的第一自定义注解和第二自定义注解;
函数拦截模块32,用于调用各系统函数,并通过面向切面编程对各系统函数中标记第一自定义注解的系统函数进行拦截,得到目标系统函数;
字段数组获得模块33,用于获取目标系统函数的返回结果对象,并对返回结果对象进行对象反射,得到对象属性字段数组;
属性字段确定模块34,用于从对象属性字段数组中查找标记第二自定义注解的各属性字段,并将标记第二自定义注解的各属性字段确定为各目标属性字段;
字典转义模块35,用于调用预设的字典转义函数,分别将各目标属性字段的属性字段信息和字典值传入字典转义函数,以使字典转义函数根据各属性字段信息查找相应的目标实现类,并分别利用各目标实现类对应的字典数据对各字典值进行字典转义,得到转义结果。
由上述技术方案可知,通过将标记第二自定义注解的各目标属性字段的属性字段信息和字典值传入字典转义函数,利用字典转义函数根据各属性字段信息查找相应的目标实现类,分别利用各目标实现类对应的字典数据对各字典值进行字典转义。通过自定义注解实现了字典来源值类的拓展,从而支持多类系统模块的需求,增加了使用的自由度和兼容度。通过设置统一的字典转义函数,减少开发人员的重复工作时间,提升了字典转义效率。
在本发明的一种具体实施方式中,字典转义模块35包括:
编码值获取子模块,用于分别获取各目标属性字段的编码值;
缓存数据查询子模块,用于分别根据各编码值查询是否存在各目标实现类对应的目标字典缓存数据;
第一字典转义子模块,用于当根据编码值查询到目标实现类对应的目标字典缓存数据时,利用目标字典缓存数据对字典值进行字典转义;
第二字典转义子模块,用于当根据编码值未查询到目标实现类对应的目标字典缓存数据时,调用实现类的查询函数查询目标实现类对应的字典数据,利用查询到的字典数据对字典值进行字典转义。
在本发明的一种具体实施方式中,该装置还可以包括:
数据缓存模块,用于在利用查询到的字典数据对字典值进行字典转义之后,对查询到的字典数据进行缓存。
在本发明的一种具体实施方式中,字典转义模块35具体为字典转义函数从继承有预创建的抽象字典来源值类的各实现类中查找各属性字段信息分别对应的目标实现类的模块。
在本发明的一种具体实施方式中,字典转义模块35具体为字典转义函数从SpringIoc容器内继承有预创建的抽象字典来源值类的各实现类中查找各属性字段信息分别对应的目标实现类的模块。
在本发明的一种具体实施方式中,该装置还可以包括:
日志提示打印模块,用于在字典转义函数根据各属性字段信息查找相应的目标实现类之后,当存在根据属性字段信息查找相应的目标实现类失败时,打印异常日志提示。
在本发明的一种具体实施方式中,属性字段确定模块34包括:
字段名称记录子模块,用于记录标记第二自定义注解的各属性字段的属性字段名称;
字段转化子模块,用于将标记第二自定义注解的各属性字段转化为Json对象;
键值获取子模块,用于分别获取各Json对象的键值;
判断子模块,用于针对每个标记第二自定义注解的属性字段,判断属性字段名称与相应的键值是否相同;
属性字段确定子模块,用于当确定属性字段名称与相应的键值相同时,将属性字段名称与相应的键值相同的属性字段确定为目标属性字段。
相应于上面的方法实施例,参见图4,图4为本发明所提供的字典转义设备的示意图,该设备可以包括:
存储器332,用于存储计算机程序;
处理器322,用于执行计算机程序时实现上述方法实施例的字典转义方法的步骤。
具体的,请参考图5,图5为本实施例提供的一种字典转义设备的具体结构示意图,该字典转义设备可因配置或性能不同而产生比较大的差异,可以包括处理器(centralprocessing units,CPU)322(例如,一个或一个以上处理器)和存储器332,存储器332存储有一个或一个以上的计算机程序342或数据344。其中,存储器332可以是短暂存储或持久存储。存储在存储器332的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,处理器322可以设置为与存储器332通信,在字典转义设备301上执行存储器332中的一系列指令操作。
字典转义设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341。
上文所描述的字典转义方法中的步骤可以由字典转义设备的结构实现。
相应于上面的方法实施例,本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现如下步骤:
获取预创建的第一自定义注解和第二自定义注解;调用各系统函数,并通过面向切面编程对各系统函数中标记第一自定义注解的系统函数进行拦截,得到目标系统函数;获取目标系统函数的返回结果对象,并对返回结果对象进行对象反射,得到对象属性字段数组;从对象属性字段数组中查找标记第二自定义注解的各属性字段,并将标记第二自定义注解的各属性字段确定为各目标属性字段;调用预设的字典转义函数,分别将各目标属性字段的属性字段信息和字典值传入字典转义函数,以使字典转义函数根据各属性字段信息查找相应的目标实现类,并分别利用各目标实现类对应的字典数据对各字典值进行字典转义,得到转义结果。
该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
对于本发明提供的计算机可读存储介质的介绍请参照上述方法实施例,本发明在此不做赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置、设备及计算机可读存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (10)
1.一种字典转义方法,其特征在于,包括:
获取预创建的第一自定义注解和第二自定义注解;
调用各系统函数,并通过面向切面编程对各所述系统函数中标记所述第一自定义注解的系统函数进行拦截,得到目标系统函数;
获取所述目标系统函数的返回结果对象,并对所述返回结果对象进行对象反射,得到对象属性字段数组;
从所述对象属性字段数组中查找标记所述第二自定义注解的各属性字段,并将标记所述第二自定义注解的各属性字段确定为各目标属性字段;
调用预设的字典转义函数,分别将各所述目标属性字段的属性字段信息和字典值传入所述字典转义函数,以使所述字典转义函数根据各所述属性字段信息查找相应的目标实现类,并分别利用各所述目标实现类对应的字典数据对各所述字典值进行字典转义,得到转义结果。
2.根据权利要求1所述的字典转义方法,其特征在于,分别利用各所述目标实现类对应的字典数据对各所述字典值进行字典转义,包括:
分别获取各所述目标属性字段的编码值;
分别根据各所述编码值查询是否存在各所述目标实现类对应的目标字典缓存数据;
若是,则利用所述目标字典缓存数据对所述字典值进行字典转义;
若否,则调用实现类的查询函数查询所述目标实现类对应的字典数据,利用查询到的字典数据对所述字典值进行字典转义。
3.根据权利要求2所述的字典转义方法,其特征在于,在利用查询到的字典数据对所述字典值进行字典转义之后,还包括:
对查询到的字典数据进行缓存。
4.根据权利要求1所述的字典转义方法,其特征在于,所述字典转义函数根据各所述属性字段信息查找相应的目标实现类,包括:
所述字典转义函数从继承有预创建的抽象字典来源值类的各实现类中查找各所述属性字段信息分别对应的目标实现类。
5.根据权利要求4所述的字典转义方法,其特征在于,所述字典转义函数从继承有预创建的抽象字典来源值类的各实现类中查找各所述属性字段信息分别对应的目标实现类,包括:
所述字典转义函数从Spring Ioc容器内继承有预创建的抽象字典来源值类的各实现类中查找各所述属性字段信息分别对应的目标实现类。
6.根据权利要求1所述的字典转义方法,其特征在于,在所述字典转义函数根据各所述属性字段信息查找相应的目标实现类之后,还包括:
当存在根据所述属性字段信息查找相应的目标实现类失败时,打印异常日志提示。
7.根据权利要求1所述的字典转义方法,其特征在于,将标记所述第二自定义注解的各属性字段确定为各目标属性字段,包括:
记录标记所述第二自定义注解的各所述属性字段的属性字段名称;
将标记所述第二自定义注解的各所述属性字段转化为Json对象;
分别获取各所述Json对象的键值;
针对每个标记所述第二自定义注解的属性字段,判断所述属性字段名称与相应的键值是否相同;
若是,则将所述属性字段名称与相应的键值相同的属性字段确定为目标属性字段。
8.一种字典转义装置,其特征在于,包括:
注解获取模块,用于获取预创建的第一自定义注解和第二自定义注解;
函数拦截模块,用于调用各系统函数,并通过面向切面编程对各所述系统函数中标记所述第一自定义注解的系统函数进行拦截,得到目标系统函数;
字段数组获得模块,用于获取所述目标系统函数的返回结果对象,并对所述返回结果对象进行对象反射,得到对象属性字段数组;
属性字段确定模块,用于从所述对象属性字段数组中查找标记所述第二自定义注解的各属性字段,并将标记所述第二自定义注解的各属性字段确定为各目标属性字段;
字典转义模块,用于调用预设的字典转义函数,分别将各所述目标属性字段的属性字段信息和字典值传入所述字典转义函数,以使所述字典转义函数根据各所述属性字段信息查找相应的目标实现类,并分别利用各所述目标实现类对应的字典数据对各所述字典值进行字典转义,得到转义结果。
9.一种字典转义设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述字典转义方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述字典转义方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310208152.XA CN116048478B (zh) | 2023-03-07 | 2023-03-07 | 一种字典转义方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310208152.XA CN116048478B (zh) | 2023-03-07 | 2023-03-07 | 一种字典转义方法、装置、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116048478A CN116048478A (zh) | 2023-05-02 |
CN116048478B true CN116048478B (zh) | 2023-05-30 |
Family
ID=86113555
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310208152.XA Active CN116048478B (zh) | 2023-03-07 | 2023-03-07 | 一种字典转义方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116048478B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116795426B (zh) * | 2023-08-21 | 2023-11-10 | 智慧眼科技股份有限公司 | 一种数据处理方法及系统 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011008634A (ja) * | 2009-06-26 | 2011-01-13 | Hitachi Computer Peripherals Co Ltd | パターン認識用辞書生成装置、パターン認識装置、及びパターン認識用辞書生成方法 |
JP2013113882A (ja) * | 2011-11-25 | 2013-06-10 | Zenrin Datacom Co Ltd | 注記表記変換装置、注記表記変換方法および注記表記変換プログラム |
US10397303B1 (en) * | 2016-08-29 | 2019-08-27 | Amazon Technologies, Inc. | Semantic annotation and translations for devices |
US10606957B1 (en) * | 2019-06-27 | 2020-03-31 | Raivana, Inc. | Method and system for translating natural language policy to logical access control policy |
US10903988B1 (en) * | 2019-11-04 | 2021-01-26 | International Business Machines Corporation | Unique instruction identifier that identifies common instructions across different code releases |
CN112287013A (zh) * | 2020-12-24 | 2021-01-29 | 深圳市蓝凌软件股份有限公司 | 数据转换方法及适配器 |
WO2021258848A1 (zh) * | 2020-06-24 | 2021-12-30 | 平安科技(深圳)有限公司 | 数据字典生成方法、数据查询方法、装置、设备及介质 |
CN114020250A (zh) * | 2021-10-09 | 2022-02-08 | 济南浪潮智投智能科技有限公司 | 基于aop的字典翻译实现方法、系统、电子设备及存储介质 |
EP3992866A2 (en) * | 2021-06-30 | 2022-05-04 | Beijing Baidu Netcom Science And Technology Co. Ltd. | Method and apparatus for annotating data |
CN114676686A (zh) * | 2022-05-30 | 2022-06-28 | 恒生电子股份有限公司 | 数据字典处理方法、翻译方法及相关装置 |
CN115357251A (zh) * | 2022-08-15 | 2022-11-18 | 银盛支付服务股份有限公司 | 一种移动端iOS开发数据转模型的方法 |
CN115686476A (zh) * | 2022-11-16 | 2023-02-03 | 深圳依时货拉拉科技有限公司 | 语言转换的方法、装置、计算机设备及计算机可读存储介质 |
-
2023
- 2023-03-07 CN CN202310208152.XA patent/CN116048478B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011008634A (ja) * | 2009-06-26 | 2011-01-13 | Hitachi Computer Peripherals Co Ltd | パターン認識用辞書生成装置、パターン認識装置、及びパターン認識用辞書生成方法 |
JP2013113882A (ja) * | 2011-11-25 | 2013-06-10 | Zenrin Datacom Co Ltd | 注記表記変換装置、注記表記変換方法および注記表記変換プログラム |
US10397303B1 (en) * | 2016-08-29 | 2019-08-27 | Amazon Technologies, Inc. | Semantic annotation and translations for devices |
US10606957B1 (en) * | 2019-06-27 | 2020-03-31 | Raivana, Inc. | Method and system for translating natural language policy to logical access control policy |
US10903988B1 (en) * | 2019-11-04 | 2021-01-26 | International Business Machines Corporation | Unique instruction identifier that identifies common instructions across different code releases |
WO2021258848A1 (zh) * | 2020-06-24 | 2021-12-30 | 平安科技(深圳)有限公司 | 数据字典生成方法、数据查询方法、装置、设备及介质 |
CN112287013A (zh) * | 2020-12-24 | 2021-01-29 | 深圳市蓝凌软件股份有限公司 | 数据转换方法及适配器 |
EP3992866A2 (en) * | 2021-06-30 | 2022-05-04 | Beijing Baidu Netcom Science And Technology Co. Ltd. | Method and apparatus for annotating data |
CN114020250A (zh) * | 2021-10-09 | 2022-02-08 | 济南浪潮智投智能科技有限公司 | 基于aop的字典翻译实现方法、系统、电子设备及存储介质 |
CN114676686A (zh) * | 2022-05-30 | 2022-06-28 | 恒生电子股份有限公司 | 数据字典处理方法、翻译方法及相关装置 |
CN115357251A (zh) * | 2022-08-15 | 2022-11-18 | 银盛支付服务股份有限公司 | 一种移动端iOS开发数据转模型的方法 |
CN115686476A (zh) * | 2022-11-16 | 2023-02-03 | 深圳依时货拉拉科技有限公司 | 语言转换的方法、装置、计算机设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116048478A (zh) | 2023-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107038207B (zh) | 一种数据查询方法、数据处理方法及装置 | |
EP3014479B1 (en) | Omega names: name generation and derivation | |
CN105760534B (zh) | 自定义的可序列化的数据结构、hadoop集群、服务器及其应用方法 | |
CN101763255B (zh) | 一种专用界面工具的格式转换方法及装置 | |
CN111325022B (zh) | 识别层级地址的方法和装置 | |
CN116048478B (zh) | 一种字典转义方法、装置、设备及计算机可读存储介质 | |
US9514184B2 (en) | Systems and methods for a high speed query infrastructure | |
WO2017097159A1 (zh) | 一种随机字符串生成方法及装置 | |
CN104320312A (zh) | 网络应用安全测试工具及模糊测试用例生成方法和系统 | |
US20050066315A1 (en) | Localization tool | |
CN109189395B (zh) | 一种数据解析方法及装置 | |
CN115599386A (zh) | 代码生成方法、装置、设备及存储介质 | |
CN111240772A (zh) | 一种基于区块链的数据处理方法、装置及存储介质 | |
Loseto et al. | Linked Data (in low-resource) Platforms: a mapping for Constrained Application Protocol | |
CN111611011B (zh) | 一种支持Blob数据类型的JSON语法扩展方法和解析方法及装置 | |
US6708310B1 (en) | Method and system for implementing user-defined codeset conversions in a computer system | |
US9258258B2 (en) | Implementing injection of formal numerical message identifiers in cloud stacks | |
CN115795187A (zh) | 资源访问方法、装置及设备 | |
CN110941655A (zh) | 一种数据格式转换方法及装置 | |
CN114115908A (zh) | 一种指令集生成、程序解析方法装置、设备以及存储介质 | |
CN115905274A (zh) | 数据处理的方法、装置、电子设备及介质 | |
CN114816420A (zh) | 一种数据处理方法和装置 | |
CN113312540A (zh) | 信息处理方法、装置、设备、系统及可读存储介质 | |
CN112988778A (zh) | 一种处理数据库查询脚本的方法和装置 | |
CN111178025A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: No. 205, Building B1, Huigu Science and Technology Industrial Park, No. 336 Bachelor Road, Bachelor Street, Yuelu District, Changsha City, Hunan Province, 410000 Patentee after: Wisdom Eye Technology Co.,Ltd. Address before: Building 14, Phase I, Changsha Zhongdian Software Park, No. 39 Jianshan Road, Changsha High tech Development Zone, Changsha City, Hunan Province, 410205 Patentee before: Wisdom Eye Technology Co.,Ltd. |
|
CP03 | Change of name, title or address |