CN117170776A - 一种业务逻辑的执行方法和装置 - Google Patents
一种业务逻辑的执行方法和装置 Download PDFInfo
- Publication number
- CN117170776A CN117170776A CN202311139568.7A CN202311139568A CN117170776A CN 117170776 A CN117170776 A CN 117170776A CN 202311139568 A CN202311139568 A CN 202311139568A CN 117170776 A CN117170776 A CN 117170776A
- Authority
- CN
- China
- Prior art keywords
- service
- attribute
- policy
- strategy
- business
- 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
- 238000000034 method Methods 0.000 title claims abstract description 96
- 230000002085 persistent effect Effects 0.000 claims abstract description 75
- 238000004806 packaging method and process Methods 0.000 claims abstract description 29
- 238000005538 encapsulation Methods 0.000 claims abstract description 20
- 238000006243 chemical reaction Methods 0.000 claims abstract description 9
- 238000013507 mapping Methods 0.000 claims description 39
- 238000004590 computer program Methods 0.000 claims description 10
- 230000008569 process Effects 0.000 abstract description 26
- 230000000694 effects Effects 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 23
- 230000002688 persistence Effects 0.000 description 15
- 238000012423 maintenance Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 238000011161 development Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 235000010627 Phaseolus vulgaris Nutrition 0.000 description 5
- 244000046052 Phaseolus vulgaris Species 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 101100217298 Mus musculus Aspm gene Proteins 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 239000003999 initiator Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000012827 research and development Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 239000013065 commercial product Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013503 de-identification Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000012858 packaging process Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种业务逻辑的执行方法和装置,涉及计算机技术领域。业务逻辑的执行方法的一具体实施方式包括:响应于接收到业务逻辑执行请求,获取对应的入参对象;从所述入参对象所包括的对象属性中识别出第一业务属性和策略属性;将所述第一业务属性封装为持久对象,将所述策略属性转换为业务策略实现类;对所述持久对象执行所述业务策略实现类所包括的业务逻辑,以响应所述业务逻辑执行请求。该实施方式对入参对象的对象属性进行划分,根据划分结果执行对应的封装、转换等操作,能够明确每个对象属性在业务逻辑执行过程中的作用,简化业务逻辑,便于研发与维护业务逻辑。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种业务逻辑的执行方法和装置。
背景技术
在执行业务逻辑时,通常根据业务需求对业务逻辑执行请求所携带的入参对象进行多层封装,再根据封装结果执行对应的持久化操作。例如,业务逻辑的执行系统分为控制层、业务层和持久层,每层对入参对象进行封装并传递至下一层,最后在持久层对封装结果进行持久化操作。入参对象包括多个对象属性,在封装过程中,多个对象属性被封装在一起,并逐层传递。
在实现本发明的过程中,发明人发现现有技术至少存在如下问题:
封装结果中包括不参与业务逻辑执行的对象属性,导致业务逻辑冗余复杂,研发和维护成本高。
发明内容
有鉴于此,本发明实施例提供一种业务逻辑的执行方法和装置,能够简化业务逻辑,便于研发和维护业务逻辑。
为实现上述目的,根据本发明实施例的第一方面,提供一种业务逻辑的执行方法,包括:
响应于接收到业务逻辑执行请求,获取对应的入参对象;
从所述入参对象所包括的对象属性中识别出第一业务属性和策略属性;
将所述第一业务属性封装为持久对象,将所述策略属性转换为业务策略实现类;
对所述持久对象执行所述业务策略实现类所包括的业务逻辑,以响应所述业务逻辑执行请求。
可选地,将所述第一业务属性封装为持久对象,包括:
将所述第一业务属性封装为业务对象;
根据所述业务对象的标记信息,从所述业务对象所包括的对象属性中识别出检索属性和/或存储属性;
将识别出的检索属性和/或存储属性封装为持久对象。
可选地,将所述检索属性封装为持久化对象,包括:
将所述检索属性封装为检索对象;
根据所述检索对象的标记信息,从所述检索对象所包括的对象属性中识别出不同检索类型的检索子属性;
将识别出的检索子属性封装为持久对象。
可选地,所述方法还包括:
根据所述业务对象的标记信息,从所述业务对象所包括的对象属性中识别出第二业务属性;
将所述第二业务属性封装为持久对象。
可选地,将所述策略属性转换为业务策略实现类,包括:
根据所述策略属性确定对应的业务策略编码;
根据所述业务策略编码生成对应的业务策略实现类。
可选地,根据所述业务策略编码生成对应的业务策略实现类,包括:
将所述业务策略编码映射为业务策略实现类名;
根据所述业务策略实现类名生成对应的业务策略实现类。
可选地,将所述业务策略编码映射为业务策略实现类名,包括:
遍历预先设置的自定义枚举类,判断所述自定义枚举类所包括的业务枚举属性是否与所述业务策略编码匹配;
将业务枚举属性与所述业务策略编码匹配的自定义枚举类作为目标枚举类,将所述目标枚举类所包括的策略实现属性作为所述业务策略实现类名。
可选地,将所述业务策略编码映射为业务策略实现类名,包括:
遍历预先设置的策略映射表,确定与所述业务策略编码具有映射关系的业务策略实现类名。
可选地,根据所述策略属性确定对应的业务策略编码,包括:
确定所述策略属性对应的编码公式;
使用所述策略属性替换所述编码公式中的占位符,得到对应的业务策略编码。
可选地,在根据所述业务策略编码生成对应的业务策略实现类之前,所述方法还包括:
对所述业务策略编码加密。
可选地,所述方法还包括:
将所述业务策略编码存储至缓存和/或数据库中。
根据本发明实施例的第二方面,提供一种业务逻辑的执行装置,包括:
获取模块,用于响应于接收到业务逻辑执行请求,获取对应的入参对象;
识别模块,用于从所述入参对象所包括的对象属性中识别出第一业务属性和策略属性;
封装转换模块,用于将所述第一业务属性封装为持久对象,将所述策略属性转换为业务策略实现类
执行模块,用于对所述持久对象执行所述业务策略实现类所包括的业务逻辑,以响应所述业务逻辑执行请求。
可选地,将所述第一业务属性封装为持久对象,包括:
将所述第一业务属性封装为业务对象;
根据所述业务对象的标记信息,从所述业务对象所包括的对象属性中识别出检索属性和/或存储属性;
将识别出的检索属性和/或存储属性封装为持久对象。
可选地,将所述检索属性封装为持久化对象,包括:
将所述检索属性封装为检索对象;
根据所述检索对象的标记信息,从所述检索对象所包括的对象属性中识别出不同检索类型的检索子属性;
将识别出的检索子属性封装为持久对象。
可选地,所述装置还包括:
再识别模块,用于根据所述业务对象的标记信息,从所述业务对象所包括的对象属性中识别出第二业务属性;
再封装模块,用于将所述第二业务属性封装为持久对象。
可选地,将所述策略属性转换为业务策略实现类,包括:
根据所述策略属性确定对应的业务策略编码;
根据所述业务策略编码生成对应的业务策略实现类。
可选地,根据所述业务策略编码生成对应的业务策略实现类,包括:
将所述业务策略编码映射为业务策略实现类名;
根据所述业务策略实现类名生成对应的业务策略实现类。
可选地,将所述业务策略编码映射为业务策略实现类名,包括:
遍历预先设置的自定义枚举类,判断所述自定义枚举类所包括的业务枚举属性是否与所述业务策略编码匹配;
将业务枚举属性与所述业务策略编码匹配的自定义枚举类作为目标枚举类,将所述目标枚举类所包括的策略实现属性作为所述业务策略实现类名。
可选地,将所述业务策略编码映射为业务策略实现类名,包括:
遍历预先设置的策略映射表,确定与所述业务策略编码具有映射关系的业务策略实现类名。
可选地,根据所述策略属性确定对应的业务策略编码,包括:
确定所述策略属性对应的编码公式;
使用所述策略属性替换所述编码公式中的占位符,得到对应的业务策略编码。
可选地,所述装置还包括:
加密模块,用于对所述业务策略编码加密。
可选地,所述装置还包括:
存储模块,用于将所述业务策略编码存储至缓存和/或数据库中。
根据本发明实施例的第三方面,提供一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行时,所述一个或多个处理器实现上述任一实施例所述的方法。
根据本发明实施例的第四方面,提供一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一实施例所述的方法。
上述发明中的一个实施例具有如下优点或有益效果:对入参对象的对象属性进行属性划分,根据划分结果执行对应的封装、转换等操作,能够明确每个对象属性在业务逻辑执行过程中的作用,简化业务逻辑,便于研发与维护业务逻辑;根据业务对象的标记信息和检索对象的标记信息对对象属性进行识别并封装为持久对象,能够提供一套标准的封装规范,灵活地封装对象属性,避免封装不需要的对象属性;设置不同的标记信息以及多次识别过程,能够满足不同的封装需求,降低对象属性之间的耦合度,提升代码的可读性;根据策略属性确定业务策略实现类,能够业务逻辑执行请求与业务逻辑解耦,灵活地执行业务逻辑,便于扩展新的业务逻辑或者修改已有的业务逻辑;对业务策略编码加密,能够对业务策略编码脱敏,提高业务逻辑的安全性。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的业务逻辑的执行方法的主要流程的示意图;
图2是根据本发明一个可参考实施例的业务逻辑的执行方法的整体流程的示意图;
图3是根据本发明一个可参考实施例的业务逻辑的执行方法的策略属性转换的示意图;
图4是根据本发明一个可参考实施例的业务逻辑的执行方法的策略实现类生成的示意图;
图5是根据本发明一个可参考实施例的业务逻辑的执行方法的主要流程的示意图;
图6是根据本发明另一个可参考实施例的业务逻辑的执行方法的主要流程的示意图;
图7是根据本发明又一个可参考实施例的业务逻辑的执行方法的主要流程的示意图;
图8是根据本发明实施例的业务逻辑的执行装置的主要模块的示意图;
图9是本发明实施例可以应用于其中的示例性系统架构图;
图10是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
需要说明的是,本发明的技术方案中,所涉及的用户个人信息的收集、使用、保存、共享和转移等处理,均符合相关法律法规的规定,且需要告知用户并获得用户的同意或授权,当适用时,对用户个人信息进行了去标识化和/或匿名化和/或加密的技术处理。
在执行业务逻辑时,通常根据业务需求对业务逻辑执行请求所携带的入参对象进行多层封装,再根据封装结果执行对应的持久化操作。例如,业务逻辑的执行系统分为控制层、业务层和持久层,每层对入参对象进行封装并传递至下一层,最后在持久层对封装结果进行持久化操作。入参对象包括多个对象属性,在封装过程中,多个对象属性被封装在一起,并逐层传递。
封装结果中包括不参与业务逻辑执行的对象属性,导致业务逻辑冗余复杂,研发和维护成本高;并且封装过程和持久化过程被硬编码在业务逻辑中,业务逻辑相互耦合、灵活性差,难以扩展新的业务逻辑或者修改已有的业务逻辑。
有鉴于此,根据本发明实施例的第一方面,提供一种业务逻辑的执行方法。
图1是根据本发明实施例的业务逻辑的执行方法的主要流程的示意图。如图1所示,根据本发明实施例的业务逻辑的执行方法主要包括如下的步骤S101至步骤S104。
步骤S101,响应于接收到业务逻辑执行请求,获取对应的入参对象。
业务逻辑执行请求是用户在前端发起的,或者,业务逻辑执行请求是本发明实施例的执行主体自动发起的;例如,用户在电商平台通过关键词查找商品时,向本发明实施例的执行主体发送用于查找商品信息的业务逻辑执行请求,或者用户在物流平台申请邮寄物品时,向本发明实施例的执行主体发送用于存储邮寄信息的业务逻辑执行请求;再例如,在对业务数据备份、归档时,本发明实施例的执行主体基于定时任务自动发起用于数据备份或者数据归档的业务逻辑执行请求。
解析业务逻辑执行请求,获取业务逻辑执行请求携带的参数,将获取到的参数封装为一个或者多个入参对象,入参对象包括多个对象属性,业务逻辑执行请求携带的每个参数对应入参对象中的一个对象属性。入参对象所包括的对象属性是用户在前端页面上填写的表单数据,或者是在前端页面上预先设置的默认数据,或者是在自动生成业务逻辑执行请求时自带的业务数据等等。
示例性地,用于查询商品信息的业务逻辑执行请求为“http://A1/A2/A3?name=A4&maxPrice=100&minPrice=50”,其中,“A1/A2/A3”表示接收业务逻辑执行请求的接口,“name=A4&maxPrice=100&minPrice=50”表示业务逻辑执行请求携带的参数,具体地,参数包括:商品名称“A4”,商品最高价格100,商品最低价格50;将上述参数封装为入参对象,该入参对象包括商品名称、商品最高价格、商品最低价格等多个对象属性。
获取业务逻辑执行请求对应的入参对象,为对象属性划分提供数据基础。
步骤S102,从所述入参对象所包括的对象属性中识别出第一业务属性和策略属性。
入参对象的对象属性包括第一业务属性和策略属性;其中,第一业务属性是具有实际业务意义的对象属性,在处理业务逻辑执行请求的过程中作为数据源,直接参与执行业务逻辑;策略属性是用于指示业务策略的对象属性,根据策略属性指示的业务策略执行对应的业务逻辑,策略属性是不具有实际业务意义的对象属性,不参与执行业务逻辑。
对入参对象所包括的对象属性进行识别,确定第一业务属性和策略属性。例如,预先在入参对象的对象属性上添加自定义注解,使用不同的自定义注解区分第一业务属性和策略属性,可以在全部对象属性上添加自定义注解,或者在一部分对象属性上添加自定义注解;在获取到入参对象之后,扫描对象属性上标注的自定义注解,确定该对象属性是第一业务属性还是策略属性。再例如,遍历预先设置的配置文件,查找入参对象的第一业务属性和策略属性分别对应哪些对象属性。
示例性地,预先设置自定义注解“@strategy”和“@business”,其中,标注有“@strategy”的对象属性是策略属性,标注有“@business”的对象属性是第一业务属性;入参对象B1包括对象属性C1、对象属性C2、对象属性C3;对入参对象B1扫描之后,确定在对象属性C1上标注有自定义注解“@strategy”,在对象属性C2上标注有自定义注解“@business”,因此,将对象属性C1作为策略属性,将对象属性C2作为第一业务属性。
再示例性地,入参对象B2包括对象属性C4、对象属性C5、对象属性C6;读取预先设置的配置文件,得到配置信息“{B2:{strategy:C5;business:C6}}”,从而确定在入参对象B2中,对象属性C5是策略属性,对象属性C6是第一业务属性。
根据自定义注解、配置文件等预设信息,从入参对象中识别出第一业务属性和策略属性,能够规范对象属性的业务边界,简化业务逻辑,避免不同用途的对象属性耦合在一起,便于研发和维护业务逻辑。
步骤S103,将所述第一业务属性封装为持久对象,将所述策略属性转换为业务策略实现类。
在识别出第一业务属性之后,将第一业务属性封装为持久对象(PersistantObject,PO),持久对象是用于执行持久化操作的对象,持久对象的对象属性包括第一业务属性。例如,先初始化一个持久对象,然后使用第一业务属性对初始化后的持久对象的对象属性赋值。持久对象仅包括入参对象中的第一业务属性,不包括策略属性。
在识别出策略属性之后,将策略属性转换为业务策略实现类,业务策略实现类是具有业务逻辑的实现类,具体地,业务策略实现类所具有的业务逻辑用于处理业务逻辑执行请求。例如,策略属性是通过扫描在对象属性上标注的注解来确定的,具体地,预先设置多种表示策略属性的注解,不同的表示策略属性的注解对应不同的业务策略实现类,根据注解确定策略属性对应的业务策略实现类。
示例性地,预先设置“@strategyImpl1”、“@strategyImpl2”、“@strategyImpl3”等多个用于标注策略属性的自定义注解,其中,每个自定义注解的名称对应一个业务策略实现类名;因为在策略属性上标注的自定义注解是“@strategyImpl1”,所以该策略属性对应的业务策略实现类名为“strategyImpl1”(或者再根据“strategyImpl1”查找对应的业务策略实现类名);在确定业务策略实现类名之后,根据业务策略实现类名生成对应的业务策略实现类。
根据第一业务属性封装持久对象、根据策略属性生成业务策略实现类,能够让每个对象属性仅参与必要的业务逻辑,避免多个不同用途的对象属性耦合在一起,对多个对象属性解耦,简化业务逻辑,降低研发成本和维护成本。
根据本发明一个可参考的实施例,在将第一业务属性封装为持久对象的过程中,先将第一业务属性封装为业务对象(Business Object,BO),业务对象用于执行业务操作的对象,例如,对业务数据进行计算、传递、映射、拼接等等,业务对象的对象属性包括第一业务属性。
然后根据业务对象的标记信息,从业务对象所包括的对象属性中识别出检索属性和/或存储属性,具体地,业务对象的标记信息可以是在业务对象的对象属性上标注的自定义注解,也可以是存储在配置文件中的标记信息。检索属性是用于检索类持久化操作的对象属性,例如,检索属性是最低价格,属性值为50,该检索属性用于检索价格大于等于50元的商品;存储属性是用于存储类持久化操作的对象属性,例如,存储属性为用户名,属性值为qwer,该存储属性用于更新数据库中对应的用户名。预先使用不同的自定义注解在业务对象的对象属性上标注检索属性和存储属性,或者在配置文件中为业务对象的对象属性设置检索属性或者存储属性的配置信息。将识别出的检索属性和存储属性分别封装为持久对象。
示例性地,预先设置自定义注解“@search”和“@storage”,其中,标注有“@search”的对象属性是检索属性,标注有“@storage”的对象属性是存储属性;业务对象D1包括对象属性E1、对象属性E2、对象属性E3;对业务对象D1扫描之后,确定在对象属性E1上标注有自定义注解“@search”,在对象属性E2上标注有自定义注解“@storage”,因此,将对象属性C1作为检索属性,将对象属性C2作为存储属性。
再示例性地,业务对象D2包括对象属性E4、对象属性E5、对象属性E6;读取预先设置的配置文件,得到配置信息“{D2:{search:E5;storage:E6}}”,从而确定在业务对象D2中,对象属性E5是检索属性,对象属性E6是存储属性。
根据自定义注解、配置文件等预设信息,从业务对象中识别出检索属性和存储属性,能够进一步规范对象属性的业务边界,简化业务逻辑,避免用于不同持久化操作的对象属性耦合在一起,便于研发和维护业务逻辑。
根据本发明另一个可参考的实施例,在将检索属性封装为持久化对象的过程中,先将检索属性封装为检索对象,检索对象是用于执行检索类持久化操作的对象,检索对象的对象属性包括检索属性。
然后根据检索对象的标记信息,从检索对象所包括的对象属性中识别出不同检索类型的检索子属性,具体地,检索对象的标记信息可以是在检索对象的对象属性上标注的自定义注解,也可以是存储在配置文件中的标记信息。检索子属性包括:单值精确检索子属性、多值精确检索子属性、单值模糊检索子属性、多值模糊检索子属性等等;例如,多值精确检索子属性包括:商品名称F1和品牌厂家F2,该多值精确检索子属性用于检索:商品名称为F1且品牌厂家为F2的商品;再例如,多值模糊检索子属性包括:关键字F3、第一出版日期F4、第二出版日期F5,该多值模糊检索子属性用于检索:书名中含有关键字F3且出版日期在F4和F5之间的书籍。预先使用不同的自定义注解在检索对象的对象属性上标注各种检索子属性,在每个对象属性上最多标注一种检索子属性,或者在配置文件中为检索对象的对象属性设置各种检索子属性的配置信息。将识别出的检索子属性封装为持久对象。
示例性地,预先设置自定义注解“@single”、“@multiple”、“@like”和“@multiLike”,其中,标注有“@single”的对象属性是单值精确检索子属性,标注有“@multiple”的对象属性是多值精确检索子属性,标注有“@like”的对象属性是单值模糊检索子属性,标注有“@multiLike”的对象属性是多值模糊检索子属性;检索对象G1包括对象属性H1、对象属性H2、对象属性H3;对检索对象G1扫描之后,确定在对象属性H1上标注有自定义注解“@single”,在对象属性H2上标注有自定义注解“@like”,在对象属性H3上标注有自定义注解“@multiple”,因此,将对象属性H1作为单值精确检索子属性,将对象属性H2作为单值模糊检索子属性,将对象属性H3作为多值精确检索子属性。
根据自定义注解、配置文件等预设信息,从检索对象中识别出多种检索子属性,能够进一步规范对象属性的业务边界,简化业务逻辑,避免用于不同检索类持久化操作的对象属性耦合在一起,便于研发和维护业务逻辑。
根据本发明又一个可参考的实施例,所述方法还包括:根据业务对象的标记信息,从业务对象所包括的对象属性中识别出第二业务属性,第二业务属性是具有实际业务意义的对象属性,在处理业务逻辑执行请求的过程中作为数据源,直接参与执行业务逻辑。预先使用不同的自定义注解对第一业务属性和第二业务属性进行标注,或者预先在配置文件中分别配置第一业务属性和第二业务属性对应的对象属性。通过扫描业务对象的对象属性上的自定义注解,确定第二业务属性,或者遍历配置文件,确定业务对象包括的第二业务属性。在确定第二属性之后,将第二业务属性封装为持久对象。
需要说明的是,在将第一业务属性封装为持久对象的过程中,根据实际业务需要,可以将第一业务属性多次封装为业务对象,然后从多次封装之后的业务对象中识别出用于封装为持久对象的对象属性,此处不对业务对象的封装次数和业务属性的识别次数进行限制。例如,预先设置两个业务层,在第一个业务层中,将第一业务属性封装为第一业务对象并传递至第二个业务层,在第二个业务层中,从第一业务对象中识别出第二业务属性,再将第二业务属性封装为第二业务对象,再从第二业务对象中识别出第三业务属性,最后将第三业务属性封装为持久对象。
示例性地,预先设置自定义注解“@business1”和“@business2”,其中,标注有“@business1”的对象属性是第一业务属性,标注有“@business2”的对象属性是第二业务属性;入参对象J1包括对象属性K1、对象属性K2、对象属性K3;对入参对象J1扫描之后,确定在对象属性K1和对象属性K2上标注有自定义注解“@business1”,因此,将入参对象的对象属性K1和对象属性K2作为第一业务属性;将对象属性K1和对象属性K2封装为业务对象J2;对业务对象J2扫描之后,确定在对象属性K1上标注有自定义注解“@business2”,因此,将业务对象J2的对象属性K1作为第二业务属性。
根据第一业务属性进行多次封装和识别,然后得到持久对象,能够让每个对象属性仅参与必要的业务逻辑,避免多个不同用途的业务属性耦合在一起,对多个业务属性解耦,简化业务逻辑,降低研发成本和维护成本。
根据本发明一个可参考的实施例,在将策略属性转换为业务策略实现类的过程中,先根据策略属性确定对应的业务策略编码,例如,在策略属性包括英文字母的情况下,对策略属性进行大小写转换、字符映射等操作;在策略属性包括数字的情况下,对策略属性进行四舍五入、保留有效数字、数字映射等操作;在策略属性有多个的情况下,使用预先设置的连接符对多个策略属性进行拼接。在得到业务策略编码之后,根据业务策略编码生成对应的业务策略实现类,例如,将业务策略编码作为键,查找存储在缓存或者映射集内的业务策略实现类。
示例性地,策略属性为字符串“qWErt”,将策略属性中的大写字符均转换为小写字符,得到“qwert”,根据预先设置的映射表,对字符串进行字符映射,其中,字符“a-i”映射为字符“L1”、字符“j-o”映射为字符“L2”,字符“p-z”映射为字符“L3”,根据上述规则,将策略属性映射为业务策略编码“L3L3L1L3L3”;再根据业务策略编码“CCACC”从缓存中获取对应的业务策略实现类。
再示例性地,预先设置1-100、101-200、201-300等多个数段,每个数段对应一个业务策略实现类;在策略属性为数字“123”的情况下,确定对应的数段为“101-200”,获取该数段对应的业务策略实现类。
将取值各异的策略属性映射为业务策略编码,能够灵活地确定业务策略实现类,提高业务策略实现类的生成效率。
根据本发明另一个可参考的实施例,在根据业务策略编码生成对应的业务策略实现类的过程中,将业务策略编码映射为业务策略实现类名,例如,在业务策略编码的起始处拼接预先设置的前缀字符串,或者在业务策略编码的结尾处拼接预先设置的后缀字符串,得到业务策略实现类。
在得到业务策略实现类的类名称之后,根据业务策略实现类名生成对应的业务策略实现类,具体地,预先设置自定义bean工厂,在自定义bean工厂中注册业务策略实现类获取类,根据业务策略实现类名从自定义bean工厂中获取业务策略实现类的实例对象。
示例性地,在得到业务策略编码“asdfg”之后,在业务策略编码的结尾处拼接预先设置的后缀字符串“Strategy”,得到业务策略实现类名“asdfgStrategy”;然后,在ApplicationContextAware接口的实现类中,基于spring框架的applicationContext上下文对象,调用getBean(“asdfgStrategy”)方法,即可从自定义bean工厂中获取业务策略实现类。
根据业务策略实现类名获取对应的业务策略实现类,能够快速、准确地得到业务策略实现类,便于提高业务逻辑的执行效率。
根据本发明又一个可参考的实施例,在将业务策略编码映射为业务策略实现类名的过程中,遍历预先设置的自定义枚举类,自定义枚举类用于存储业务枚举属性和策略实现属性,其中,业务枚举属性用于匹配业务策略编码,例如,在业务枚举属性和业务策略编码相等的情况下、或者在业务策略编码包含业务枚举属性的情况下,判定业务枚举属性和业务策略编码匹配;将业务枚举属性与业务策略编码匹配的自定义枚举类作为目标枚举类,获取目标枚举类所包括的策略实现属性,将该策略实现属性作为业务策略实现类名。
示例性地,在业务代码中预先设置多个自定义枚举类,每个自定义枚举类对应一个业务策略实现类,将对应的业务策略实现类名定义到自定义枚举类中;遍历自定义枚举类,将业务策略编码与自定义枚举类中的业务枚举属性进行匹配,判断业务枚举属性是否与业务策略编码相同或者业务策略编码是否包含业务枚举属性,若相同或包含,则匹配成功,返回对应的自定义枚举所包括的策略实现属性,将该策略实现属性作为业务策略实现类名。
通过自定义枚举类确定业务策略实现类名,便于管理业务策略实现类名,易于扩展新的业务策略实现类名或者修改已有的业务策略实现类名,能够准确、快速地确定业务策略实现类名。
根据本发明还一个可参考的实施例,在将业务策略编码映射为业务策略实现类名的过程中,遍历预先设置的策略映射表,映射表用于存储业务策略编码和业务策略实现类名之间的映射关系,在遍历策略映射表单过程中,查找业务策略编码,确定与业务策略编码具有映射关系的业务策略实现类名。在增加业务策略实现类的情况下,在策略映射表中新增一条映射关系数据,新增的映射关系数据包括业务策略编码和对应的业务策略实现类名。
示例性地,预先设置的策略映射表为“{‘poiuy’:‘strategyBean1’;‘lkjhg’:‘strategyBean2’;‘mnbvc’:‘strategyBean3’}”;在业务策略编码是“lkjhg”的情况下,遍历策略映射表,得到对应的业务策略实现类名为“strategyBean2”。
通过策略映射表确定业务策略实现类名,便于管理业务策略实现类名,易于扩展新的业务策略实现类名或者修改已有的业务策略实现类名,能够准确、快速地确定业务策略实现类名。
根据本发明一个可参考的实施例,在根据策略属性确定对应的业务策略编码的过程中,确定策略属性对应的编码公式,编码公式包括:占位符和连接符,多个占位符之间使用连接符连接。例如,在不同业务场景中设置不同的编码公式,具体地,设置连接符不同的编码公式或者设置占位符和连接符排列顺序不同的编码公式;根据策略属性确定业务场景,根据业务场景确定对应的编码公式。在确编码公式之后,使用策略属性的属性值替换编码公式中的占位符,一个策略属性替换一个占位符,得到由策略属性和连接符组成的编码,即业务策略编码。
示例性地,有策略属性M1、策略属性M2和策略属性M3等多个策略属性,其中,策略属性M1表示业务场景,根据业务场景确定对应的编码公式为“{field-1}_{field-2}_{field-3}_..._{field-n}”,其中,“{field-1}”、“{field-2}”...“{field-n}”表示多个占位符,下划线“_”表示连接符,将上述多个策略属性替换编码公式中的占位符,得到业务策略编码为“M1_M2_M3”。
根据策略属性确定编码公式,能够灵活地生成业务策略编码,使业务策略编码与业务逻辑解耦;在不同业务场景中使用不同的编码公式,便于区分不同业务场景;将策略属性带入编码公式,能够生成与策略属性唯一对应的业务策略编码,有效保证业务策略编码的唯一性。
根据本发明另一个可参考的实施例,在根据业务策略编码生成对应的业务策略实现类之前,所述方法还包括:对业务策略编码加密,例如,使用MD5、SHA1等加密算法对业务策略编码加密。示例性地,在编码公式中体现加密步骤,具体地,使用MD5对业务策略编码加密,得到编码公式为“MD5({placeholder-1}{link}...{link}{placeholder-n})”,其中,“{placeholder-1}”...“{placeholder-n}”是多个占位符,“{link}”是连接符,例如,下划线、加号、减号、斜线、星号、百分号等等,MD5(...)表示对整个业务策略编码加密。对业务策略编码加密之后,使用加密后的业务策略编码生成对应的业务策略实现类。
根据本发明另一个可参考的实施例,在使用策略属性替换编码公式中的占位符之前,对策略属性加密。例如,使用MD5、SHA1等加密算法对策略属性加密。然后,再使用加密后的策略属性替换编码公式中的占位符。示例性地,在编码公式中体现加密步骤,具体地,使用MD5对策略属性加密,得到编码公式为“{MD5({placeholder-1})}{link}...{link}{MD5({placeholder-n})}”,其中,“{placeholder-1}”...“{placeholder-n}”是多个占位符,“{link}”是连接符,{MD5(...)}表示对每个策略属性加密。
对业务策略编码或者策略属性加密,能够对业务策略编码或者策略属性脱敏,避免信息泄露,提高业务逻辑执行的安全性。
根据本发明又一个可参考的实施例,所述方法还包括:在生成业务策略编码之后,将业务策略编码存储至缓存和数据库中。例如,将策略属性作为键,将业务策略编码作为值,存储在Redis缓存中,或者将策略属性、业务策略编码、业务策略编码的生成时间等信息作为一条数据记录,存储在MySQL数据库中。在业务逻辑执行请求处理完毕之后,将缓存或者数据库中存储的策略属性、业务策略编码等信息删除,或者将上述信息的使用状态置为失效,避免上述信息对之后业务逻辑执行过程造成干扰。
将业务策略编码存储至缓存或者数据库中,能够节省内存空间,避免业务策略编码或者策略属性丢失。
步骤S104,对所述持久对象执行所述业务策略实现类所包括的业务逻辑,以响应所述业务逻辑执行请求。
在得到持久对象和业务策略实现类之后,调用业务策略实现类的方法,将持久对象作为方法入参,对持久对象执行业务策略实现类所包括的检索、存储、删除、更新等业务逻辑。例如,将持久对象存储至数据库,或者使用持久对象所包括的对象属性替换数据库中目标数据记录所包括的部分字段,或者根据持久对象所包括的对象属性检索数据库中具有相同或者相似属性值的数据记录,或者根据持久对象所包括的对象属性删除数据库中具有相同或者相似属性值的数据记录。获取上述业务逻辑的执行结果,将执行结果返回给业务逻辑执行请求的发起方,以完成业务逻辑执行请求的响应过程。
通过对对象属性进行多层划分,能够使对象属性仅参与必要的业务逻辑,对多种对象属性解耦,使封装过程规范化,动态确定业务策略实现类,将业务逻辑与接口解耦、将多种业务逻辑解耦,灵活、高效地执行业务逻辑。
图2是根据本发明一个可参考实施例的业务逻辑的执行方法的整体流程的示意图。示例性地,如图2所示,在接收到业务逻辑执行请求之后,获取对应的入参对象,对入参对象进行识别,得到策略属性和第一业务属性;将第一业务属性封装为业务对象,对业务对象的对象属性再次识别,得到检索属性、存储属性和第二业务属性、第三业务属性等多种业务属性;对第二业务属性、第三业务属性等多种业务属性再次经过多次识别和封装之后,得到持久对象;将检索属性封装为检索对象,对检索对象包括的对象属性识别,得到单值精确检索子属性、多值精确检索子属性、单值模糊检索子属性、多值模糊检索子属性等等,对每个检索子属性进行封装得到对应的持久对象;对存储属性进行封装得到对应的持久对象;在根据第一业务属性生成持久对象的同时,对策略属性编码得到业务策略编码,将业务策略编码存储至Redis缓存或者数据库中,从Redis缓存或者数据库中获取业务策略编码并生成对应的业务策略实现类;在得到持久对象和业务策略实现类之后,对持久对象执行业务策略实现类包括的持久化操作,对数据库进行增删改查并生成业务逻辑执行结果,将业务逻辑执行结果返回至业务逻辑执行请求的发起方。
图3是根据本发明一个可参考实施例的业务逻辑的执行方法的策略属性转换的示意图。示例性地,如图3所示,在得到策略属性1策略属性2、策略属性3等多个策略属性之后,从编码公式集中筛选出目标编码公式,然后使用上述多个策略属性替换目标编码公式中的占位符,得到业务策略编码,最后将业务策略编码存储至Redis缓存和数据库中。
图4是根据本发明一个可参考实施例的业务逻辑的执行方法的策略实现类生成的示意图。示例性地,如图4所示,首先从Redis缓存中获取业务策略编码,然后遍历预先设置的自定义枚举类,从多个自定义枚举类中筛选出与业务策略编码匹配的目标枚举类,从目标枚举类中获取策略实现属性的属性值作为业务策略实现类名,然后在ApplicationContextAware接口实现类中,使用applicationContext上下文对象从bean工厂中获取业务策略实现类名对应的业务策略实现类。
图5是根据本发明一个可参考实施例的业务逻辑的执行方法的主要流程的示意图。如图5所示,所述业务逻辑的执行方法可以包括:
步骤S501,响应于接收到业务逻辑执行请求,获取对应的入参对象;
步骤S502,从入参对象所包括的对象属性中识别出第一业务属性和策略属性;
步骤S503,将第一业务属性封装为业务对象;
步骤S504,根据业务对象的标记信息,从业务对象所包括的对象属性中识别出检索属性和存储属性;
步骤S505,将检索属性和存储属性分别封装为持久对象;
步骤S506,将策略属性转换为业务策略实现类;
步骤S507,对持久对象执行业务策略实现类所包括的业务逻辑,以响应业务逻辑执行请求。
上述本发明一个可参考实施例的业务逻辑的执行方法的具体实施内容,在上面所述业务逻辑的执行方法中已经详细说明了,故在此重复内容不再说明。
图6是根据本发明另一个可参考实施例的业务逻辑的执行方法的主要流程的示意图。如图6所示,所述业务逻辑的执行方法可以包括:
步骤S601,响应于接收到业务逻辑执行请求,获取对应的入参对象;
步骤S602,从入参对象所包括的对象属性中识别出第一业务属性和策略属性;
步骤S603,将第一业务属性封装为业务对象;
步骤S604,根据业务对象的标记信息,从业务对象所包括的对象属性中识别出检索属性和存储属性;
步骤S605,将检索属性封装为检索对象;
步骤S606,根据检索对象的标记信息,从检索对象所包括的对象属性中识别出不同检索类型的检索子属性;
步骤S607,将不同检索类型的检索子属性和存储属性分别封装为持久对象;
步骤S608,根据策略属性确定对应的业务策略编码;
步骤S609,根据业务策略编码生成对应的业务策略实现类;
步骤S610,对持久对象执行业务策略实现类所包括的业务逻辑,以响应业务逻辑执行请求。
上述本发明另一个可参考实施例的业务逻辑的执行方法的具体实施内容,在上面所述业务逻辑的执行方法中已经详细说明了,故在此重复内容不再说明。
图7是根据本发明又一个可参考实施例的业务逻辑的执行方法的主要流程的示意图。如图7所示,所述业务逻辑的执行方法可以包括:
步骤S701,响应于接收到业务逻辑执行请求,获取对应的入参对象;
步骤S702,从入参对象所包括的对象属性中识别出第一业务属性和策略属性;
步骤S703,将第一业务属性封装为第一业务对象,从第一业务对象中识别出第二业务属性,并将第二业务属性封装为第二业务对象;
步骤S704,将第一业务属性封装为第一业务对象,从第一业务对象中识别出第二业务属性,并将第二业务属性封装为第二业务对象;
步骤S705,将检索属性封装为检索对象;
步骤S706,根据检索对象的标记信息,从检索对象所包括的对象属性中识别出不同检索类型的检索子属性;
步骤S707,将不同检索类型的检索子属性和存储属性分别封装为持久对象;
步骤S708,根据策略属性确定对应的业务策略编码;
步骤S709,使用MD5加密算法对业务策略编码加密;
步骤S710,将加密后的业务策略编码存储至数据库;
步骤S711,根据业务策略编码生成对应的业务策略实现类;
步骤S712,对持久对象执行业务策略实现类所包括的业务逻辑,以响应业务逻辑执行请求。
上述本发明又一个可参考实施例的业务逻辑的执行方法的具体实施内容,在上面所述业务逻辑的执行方法中已经详细说明了,故在此重复内容不再说明。
根据本发明实施例的第二方面,提供一种业务逻辑的执行装置。
图8是根据本发明实施例的业务逻辑的执行装置的主要模块的示意图,如图8所示,所述业务逻辑的执行装置800主要包括:
获取模块801,用于响应于接收到业务逻辑执行请求,获取对应的入参对象;
识别模块802,用于从所述入参对象所包括的对象属性中识别出第一业务属性和策略属性;
封装转换模块803,用于将所述第一业务属性封装为持久对象,将所述策略属性转换为业务策略实现类
执行模块804,用于对所述持久对象执行所述业务策略实现类所包括的业务逻辑,以响应所述业务逻辑执行请求。
根据本发明一个可参考的实施例,将所述第一业务属性封装为持久对象,包括:
将所述第一业务属性封装为业务对象;
根据所述业务对象的标记信息,从所述业务对象所包括的对象属性中识别出检索属性和/或存储属性;
将识别出的检索属性和/或存储属性封装为持久对象。
根据本发明另一个可参考的实施例,将所述检索属性封装为持久化对象,包括:
将所述检索属性封装为检索对象;
根据所述检索对象的标记信息,从所述检索对象所包括的对象属性中识别出不同检索类型的检索子属性;
将识别出的检索子属性封装为持久对象。
根据本发明又一个可参考的实施例,所述业务逻辑的执行装置800还包括:
再识别模块,用于根据所述业务对象的标记信息,从所述业务对象所包括的对象属性中识别出第二业务属性;
再封装模块,用于将所述第二业务属性封装为持久对象。
根据本发明还一个可参考的实施例,将所述策略属性转换为业务策略实现类,包括:
根据所述策略属性确定对应的业务策略编码;
根据所述业务策略编码生成对应的业务策略实现类。
根据本发明再一个可参考的实施例,根据所述业务策略编码生成对应的业务策略实现类,包括:
将所述业务策略编码映射为业务策略实现类名;
根据所述业务策略实现类名生成对应的业务策略实现类。
根据本发明一个可参考的实施例,将所述业务策略编码映射为业务策略实现类名,包括:
遍历预先设置的自定义枚举类,判断所述自定义枚举类所包括的业务枚举属性是否与所述业务策略编码匹配;
将业务枚举属性与所述业务策略编码匹配的自定义枚举类作为目标枚举类,将所述目标枚举类所包括的策略实现属性作为所述业务策略实现类名。
根据本发明另一个可参考的实施例,将所述业务策略编码映射为业务策略实现类名,包括:
遍历预先设置的策略映射表,确定与所述业务策略编码具有映射关系的业务策略实现类名。
根据本发明又一个可参考的实施例,根据所述策略属性确定对应的业务策略编码,包括:
确定所述策略属性对应的编码公式;
使用所述策略属性替换所述编码公式中的占位符,得到对应的业务策略编码。
根据本发明还一个可参考的实施例,所述业务逻辑的执行装置800还包括:
加密模块,用于对所述业务策略编码加密。
根据本发明再一个可参考的实施例,所述业务逻辑的执行装置800还包括:
存储模块,用于将所述业务策略编码存储至缓存和/或数据库中。
需要说明的是,在本发明实施例中所述业务逻辑的执行装置的具体实施内容,在上面所述业务逻辑的执行方法中已经详细说明了,故在此重复内容不再说明。
根据本发明实施例的技术方案,对入参对象的对象属性进行属性划分,根据划分结果执行对应的封装、转换等操作,能够明确每个对象属性在业务逻辑执行过程中的作用,简化业务逻辑,便于研发与维护业务逻辑;根据业务对象的标记信息和检索对象的标记信息对对象属性进行识别并封装为持久对象,能够提供一套标准的封装规范,灵活地封装对象属性,避免封装不需要的对象属性;设置不同的标记信息以及多次识别过程,能够满足不同的封装需求,降低对象属性之间的耦合度,提升代码的可读性;根据策略属性确定业务策略实现类,能够业务逻辑执行请求与业务逻辑解耦,灵活地执行业务逻辑,便于扩展新的业务逻辑或者修改已有的业务逻辑;对业务策略编码加密,能够对业务策略编码脱敏,提高业务逻辑的安全性。
根据本发明实施例的第三方面,提供一种业务逻辑的执行电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例第一方面提供的方法。
根据本发明实施例的第四方面,提供一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例第一方面提供的方法。
图9示出了可以应用本发明实施例的业务逻辑的执行方法或者业务逻辑的执行装置的示例性系统架构900。
如图9所示,系统架构900可以包括终端设备901、902、903,网络904和服务器905。网络904用以在终端设备901、902、903和服务器905之间提供通信链路的介质。网络904可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备901、902、903通过网络904与服务器905交互,以接收或发送消息等。终端设备901、902、903上可以安装有各种通讯客户端应用,例如:业务执行类应用、业务查看类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备901、902、903可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器905可以是提供各种服务的服务器,例如对上游利用终端设备901、902、903所发来的业务逻辑的执行请求提供支持的后台管理服务器(仅为示例)。后台管理服务器可以响应于接收到业务逻辑执行请求,获取对应的入参对象;从所述入参对象所包括的对象属性中识别出第一业务属性和策略属性;将所述第一业务属性封装为持久对象,将所述策略属性转换为业务策略实现类;对所述持久对象执行所述业务策略实现类所包括的业务逻辑,以响应所述业务逻辑执行请求;并将业务逻辑的执行情况(仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的业务逻辑的执行方法一般由服务器905执行,相应地,所述业务逻辑的执行装置一般设置在服务器905中。本发明实施例所提供的业务逻辑的执行方法也可以由终端设备901、902、903执行,相应地,所述业务逻辑的执行装置可以设置在终端设备901、902、903中。
应该理解,图9中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图10,其示出了适于用来实现本发明实施例的终端设备的计算机系统1000的结构示意图。图10示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图10所示,计算机系统1000包括中央处理单元(CPU)1001,其可以根据存储在只读存储器(ROM)1002中的程序或者从存储部分1008加载到随机访问存储器(RAM)1003中的程序而执行各种适当的动作和处理。在RAM 1003中,还存储有系统1000操作所需的各种程序和数据。CPU 1001、ROM 1002以及RAM 1003通过总线1004彼此相连。输入/输出(I/O)接口1005也连接至总线1004。
以下部件连接至I/O接口1005:包括键盘、鼠标等的输入部分1006;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1007;包括硬盘等的存储部分1008;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1009。通信部分1009经由诸如因特网的网络执行通信处理。驱动器1010也根据需要连接至I/O接口1005。可拆卸介质1011,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1010上,以便于从其上读出的计算机程序根据需要被安装入存储部分1008。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1009从网络上被下载和安装,和/或从可拆卸介质1011被安装。在该计算机程序被中央处理单元(CPU)1001执行时,执行本发明实施例的系统中限定的上述功能。
需要说明的是,本发明实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明实施例中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括获取模块、识别模块、封装转换模块、执行模块,其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,获取模块还可以被描述为“获取入参对象的模块”。
作为另一方面,本发明实施例还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,该设备实现如下方法:响应于接收到业务逻辑执行请求,获取对应的入参对象;从所述入参对象所包括的对象属性中识别出第一业务属性和策略属性;将所述第一业务属性封装为持久对象,将所述策略属性转换为业务策略实现类;对所述持久对象执行所述业务策略实现类所包括的业务逻辑,以响应所述业务逻辑执行请求。
根据本发明实施例的技术方案,对入参对象的对象属性进行属性划分,根据划分结果执行对应的封装、转换等操作,能够明确每个对象属性在业务逻辑执行过程中的作用,简化业务逻辑,便于研发与维护业务逻辑;根据业务对象的标记信息和检索对象的标记信息对对象属性进行识别并封装为持久对象,能够提供一套标准的封装规范,灵活地封装对象属性,避免封装不需要的对象属性;设置不同的标记信息以及多次识别过程,能够满足不同的封装需求,降低对象属性之间的耦合度,提升代码的可读性;根据策略属性确定业务策略实现类,能够业务逻辑执行请求与业务逻辑解耦,灵活地执行业务逻辑,便于扩展新的业务逻辑或者修改已有的业务逻辑;对业务策略编码加密,能够对业务策略编码脱敏,提高业务逻辑的安全性。
上述具体实施方式,并不构成对本发明实施例保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明实施例的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明实施例保护范围之内。
Claims (14)
1.一种业务逻辑的执行方法,其特征在于,包括:
响应于接收到业务逻辑执行请求,获取对应的入参对象;
从所述入参对象所包括的对象属性中识别出第一业务属性和策略属性;
将所述第一业务属性封装为持久对象,将所述策略属性转换为业务策略实现类;
对所述持久对象执行所述业务策略实现类所包括的业务逻辑,以响应所述业务逻辑执行请求。
2.根据权利要求1所述的方法,其特征在于,将所述第一业务属性封装为持久对象,包括:
将所述第一业务属性封装为业务对象;
根据所述业务对象的标记信息,从所述业务对象所包括的对象属性中识别出检索属性和/或存储属性;
将识别出的检索属性和/或存储属性封装为持久对象。
3.根据权利要求2所述的方法,其特征在于,将所述检索属性封装为持久化对象,包括:
将所述检索属性封装为检索对象;
根据所述检索对象的标记信息,从所述检索对象所包括的对象属性中识别出不同检索类型的检索子属性;
将识别出的检索子属性封装为持久对象。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
根据所述业务对象的标记信息,从所述业务对象所包括的对象属性中识别出第二业务属性;
将所述第二业务属性封装为持久对象。
5.根据权利要求1所述的方法,其特征在于,将所述策略属性转换为业务策略实现类,包括:
根据所述策略属性确定对应的业务策略编码;
根据所述业务策略编码生成对应的业务策略实现类。
6.根据权利要求5所述的方法,其特征在于,根据所述业务策略编码生成对应的业务策略实现类,包括:
将所述业务策略编码映射为业务策略实现类名;
根据所述业务策略实现类名生成对应的业务策略实现类。
7.根据权利要求6所述的方法,其特征在于,将所述业务策略编码映射为业务策略实现类名,包括:
遍历预先设置的自定义枚举类,判断所述自定义枚举类所包括的业务枚举属性是否与所述业务策略编码匹配;
将业务枚举属性与所述业务策略编码匹配的自定义枚举类作为目标枚举类,将所述目标枚举类所包括的策略实现属性作为所述业务策略实现类名。
8.根据权利要求6所述的方法,其特征在于,将所述业务策略编码映射为业务策略实现类名,包括:
遍历预先设置的策略映射表,确定与所述业务策略编码具有映射关系的业务策略实现类名。
9.根据权利要求5所述的方法,其特征在于,根据所述策略属性确定对应的业务策略编码,包括:
确定所述策略属性对应的编码公式;
使用所述策略属性替换所述编码公式中的占位符,得到对应的业务策略编码。
10.根据权利要求5所述的方法,其特征在于,在根据所述业务策略编码生成对应的业务策略实现类之前,所述方法还包括:
对所述业务策略编码加密。
11.根据权利要求5所述的方法,其特征在于,所述方法还包括:
将所述业务策略编码存储至缓存和/或数据库中。
12.一种业务逻辑的执行装置,其特征在于,包括:
获取模块,用于响应于接收到业务逻辑执行请求,获取对应的入参对象;
识别模块,用于从所述入参对象所包括的对象属性中识别出第一业务属性和策略属性;
封装转换模块,用于将所述第一业务属性封装为持久对象,将所述策略属性转换为业务策略实现类;
执行模块,用于对所述持久对象执行所述业务策略实现类所包括的业务逻辑,以响应所述业务逻辑执行请求。
13.一种电子设备,其特征在于,包括:
一个或者多个处理器;
存储装置,用于存储一个或者多个程序,
当所述一个或者多个程序被所述一个或者多个处理器执行时,所述一个或者多个处理器实现如权利要求1-11中任一所述的方法。
14.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-11中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311139568.7A CN117170776A (zh) | 2023-09-05 | 2023-09-05 | 一种业务逻辑的执行方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311139568.7A CN117170776A (zh) | 2023-09-05 | 2023-09-05 | 一种业务逻辑的执行方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117170776A true CN117170776A (zh) | 2023-12-05 |
Family
ID=88940701
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311139568.7A Pending CN117170776A (zh) | 2023-09-05 | 2023-09-05 | 一种业务逻辑的执行方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117170776A (zh) |
-
2023
- 2023-09-05 CN CN202311139568.7A patent/CN117170776A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200286014A1 (en) | Information updating method and device | |
CN110895472A (zh) | 一种识别业务变更的方法和装置 | |
CN112988770B (zh) | 序列号更新的方法、装置、电子设备和存储介质 | |
CN113626223A (zh) | 一种接口调用方法和装置 | |
US20200133558A1 (en) | Method, device and computer program product for data backup | |
CN113434527A (zh) | 数据处理的方法、装置、电子设备和存储介质 | |
CN111858486A (zh) | 一种文件分类方法和装置 | |
CN112818026A (zh) | 数据整合方法和装置 | |
CN109740130B (zh) | 用于生成文件的方法和装置 | |
CN115002062B (zh) | 消息处理方法、装置、设备及可读存储介质 | |
CN117170776A (zh) | 一种业务逻辑的执行方法和装置 | |
CN113641633B (zh) | 文件处理方法、装置、电子设备、介质和计算机程序 | |
CN114116675A (zh) | 一种数据归档方法和装置 | |
CN109308299B (zh) | 用于搜索信息的方法和装置 | |
CN113704222A (zh) | 一种处理业务请求的方法和装置 | |
CN112256566A (zh) | 一种测试案例的保鲜方法和装置 | |
CN111460269B (zh) | 信息推送方法和装置 | |
CN115688711B (zh) | 文档合并方法、装置、设备及存储介质 | |
CN117892355B (zh) | 一种基于隐私保护的多方数据联合分析方法及系统 | |
US20230418842A1 (en) | Data processing independent of storage, format or schema | |
CN117291483A (zh) | 一种订单处理方法和装置 | |
CN118069539A (zh) | 数据处理的方法、装置、电子设备和存储介质 | |
CN113378516A (zh) | 处理单据编码数据的系统和存储查找单据编码数据的方法 | |
CN113111051A (zh) | 一种数据迁移方法和装置 | |
CN115114364A (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 |