利用AOP与Spring依赖注入实现应用数据自动备份的方法转让专利

申请号 : CN201810768502.7

文献号 : CN109086034B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 段吉民

申请人 : 山东恒云信息科技有限公司

摘要 :

一种利用AOP与Spring依赖注入实现应用数据自动备份的方法,包括业务数据日志保存及业务数据日志还原;利用AOP(Java反射)技术与Spring依赖注入,实现应用数据的自动备份。从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。在定义应用程序对某种服务(例如日志)的所有需求的时候。通过识别关注点,使得该服务能够被更好的定义,更好的被编写代码,并获得更多的功能。

权利要求 :

1.一种利用AOP与Spring依赖注入实现应用数据自动备份的方法,其特征在于,包括业务数据日志保存及业务数据日志还原;

业务数据日志保存包括如下步骤:

a‑1)用户通过Jsp页面录入用户信息并提交用户信息数据到后台目标,后台通过Controller方法请求用户信息数据的内存处理地址;

a‑2)当用户向后台发送增加业务数据的用户请求时,后台通过Controller方法接受用户请求,从用户请求中获取用户提交的增加的业务数据的内容,并将增加的业务数据的内容封装为数据实体Java Bean类型;

a‑3)后台通过Controller方法调用目标Service结构业务处理方法,将步骤a‑2)中封装的Java Bean作为参数传给Service接口实现类;

a‑4)Service接口实现类接收到数据实体Java Bean后,获取Java Bean数据类型包含类名的全路径字符串,命名为BeanName;将Java Bean封装数据转为Json数据字符串,命名为DataJson;获取Java Bean中当前Service注解名称,命名为ServiceName;获取Java Bean中当前处理业务请求的方法名称,命名为 MethodName;

a‑5)将BeanName、DataJson、ServiceName以及MethodName保存入项目数据库业务日志表中;

a‑6)将Service接口实现类接收到业务数据Java Bean传给DAO数据处理层,将业务数据保存至相应的数据库表中;

业务数据日志还原包括如下步骤:

b‑1)读取数据库表中的数据实体Java Bean,获取Java Bean中ServiceName,通过Spring依赖注入方式通过获取的Service注解名称ServiceName获取业务数据日志的Service接口;

b‑2)读取数据库表中业务数据日志信息Java Bean中MethodName,作为数据还原接口需调用的方法名称;

b‑3)读取数据库表中业务数据日志信息Java Bean中的属性BeanName,作为业务数据实体类型;

b‑4) 读取数据库表中业务数据日志信息Java Bean中的DataJson数据,作为业务数据的Json数据字符串;

b‑5)将Json数据字符串数据转为实体Java Bean类型的对象数据,通过调用获取的ServiceName下MethodName方法,将转为实体Java Bean类型的对象数据作为参数传递给MethodName方法;

b‑6)将数据库表中业务数据传递给DAO数据处理层作数据持久化处理,将处理后的数据插入到相应的数据库业务表中。

2.根据权利要求1所述的利用AOP与Spring依赖注入实现应用数据自动备份的方法,其特征在于:步骤a‑4)中还包括获取当前登录用户账号,命名为CreateUser。

3.根据权利要求1所述的利用AOP与Spring依赖注入实现应用数据自动备份的方法,其特征在于:步骤a‑4)中还包括获取当前时间,将当前时间作为业务数据操作时间保存入项目数据库业务日志表中。

说明书 :

利用AOP与Spring依赖注入实现应用数据自动备份的方法

技术领域

[0001] 本发明涉及计算机数据安全及防护技术领域,具体涉及一种利用AOP与Spring依赖注入实现应用数据自动备份的方法。

背景技术

[0002] 实现AOP(Java反射)技术,主要分为两大类:一是采用动态代理技术,利用截取消息的方式,对该消息进行装饰,以取代原有对象行为的执行;二是采用静态织入的方式,引
入特定的语法创建“方面”,从而使得编译器可以在编译期间织入有关“方面”的代码,所谓
“方面”,简单地说,就是将那些与业务无关,却为业务模块所共同调用的逻辑或责任封装起
来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可操作性和可维护
性。AOP包含的技术特性分别为:
[0003] 1、join point(连接点):是程序执行中的一个精确执行点,例如类中的一个方法。它是一个抽象的概念,在实现AOP时,并不需要去定义一个join point。
[0004] 2、point cut(切入点):本质上是一个捕获连接点的结构。在AOP中,可以定义一个point cut,来捕获相关方法的调用。
[0005] 3、advice(通知):是point cut的执行代码,是执行“方面”的具体逻辑。
[0006] 4、aspect(方面):point cut和advice结合起来就是aspect,它类似于OOP中定义的一个类,但它代表的更多是对象间横向的关系。
[0007] 5、introduce(引入):为对象引入附加的方法或属性,从而达到修改对象结构的目的。
[0008] 其具备如下优点:1,减少系统的重复代码;2,减低模块间的耦合度;3,可操作性、可维护性。但是以上技术在新的云计算环境下,存在以下的问题:1,过于复杂;2,破坏封装;
3, 需要专门的Java编译器。

发明内容

[0009] 本发明为了克服以上技术的不足,提供了一种利用AOP(Java反射)技术与Spring依赖注入,实现应用数据的自动备份。从而使得业务逻辑各部分之间的耦合度降低,提高程
序的可重用性,同时提高了开发的效率的实现应用数据自动备份的方法。
[0010] 本发明克服其技术问题所采用的技术方案是:
[0011] 一种利用AOP与Spring依赖注入实现应用数据自动备份的方法,包括业务数据日志保存及业务数据日志还原;
[0012] 业务数据日志保存包括如下步骤:
[0013] a‑1)用户通过Jsp页面录入用户信息并提交用户信息数据到后台目标,后台通过Controller方法请求用户信息数据的内存处理地址;
[0014] a‑2)当用户向后台发送增加业务数据的用户请求时,后台通过Controller方法接受用户请求,从用户请求中获取用户提交的增加的业务数据的内容,并将增加的业务数据
的内容封装为数据实体Java Bean类型;
[0015] a‑3)后台通过Controller方法调用目标Service结构业务处理方法,将步骤a‑2)中封装的Java Bean作为参数传给Service接口实现类;
[0016] a‑4)Service接口实现类接收到数据实体Java Bean后,获取Java Bean数据类型包含类名的全路径字符串,命名为BeanName;将Java Bean封装数据转为Json数据字符串,
命名为DataJson;获取Java Bean中当前Service注解名称,命名为ServiceName;获取Java 
Bean中当前处理业务请求的方法名称,命名为 MethodName;
[0017] a‑5)将BeanName、DataJson、ServiceName以及MethodName保存入项目数据库业务日志表中;
[0018] a‑6)将Service接口实现类接收到业务数据Java Bean传给DAO数据处理层,将业务数据保存至相应的数据库表中;
[0019] 业务数据日志还原包括如下步骤:
[0020] b‑1)读取数据库表中的数据实体Java Bean,获取Java Bean中ServiceName,通过Spring依赖注入方式通过获取的Service注解名称ServiceName获取业务数据日志的
Service接口;
[0021] b‑2)读取数据库表中业务数据日志信息Java Bean中MethodName,作为数据还原接口需调用的方法名称;
[0022] b‑3)读取数据库表中业务数据日志信息Java Bean中的属性BeanName,作为业务数据实体类型;
[0023] b‑4) 读取数据库表中业务数据日志信息Java Bean中的DataJson数据,作为业务数据的Json数据字符串;
[0024] b‑5)将Json数据字符串数据转为实体Java Bean类型的对象数据,通过调用获取的ServiceName下MethodName方法,将转为实体Java Bean类型的对象数据作为参数传递给
MethodName方法;
[0025] b‑6)将数据库表中业务数据传递给DAO数据处理层作数据持久化处理,将处理后的数据插入到相应的数据库业务表中。
[0026] 步骤a‑4)中还包括获取当前登录用户账号,命名为CreateUser。
[0027] 步骤a‑4)中还包括获取当前时间,将当前时间作为业务数据操作时间保存入项目数据库业务日志表中。
[0028] 本发明的有益效果是:利用AOP(Java反射)技术与Spring依赖注入,实现应用数据的自动备份。从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高
了开发的效率。在定义应用程序对某种服务(例如日志)的所有需求的时候。通过识别关注
点,使得该服务能够被更好的定义,更好的被编写代码,并获得更多的功能。

具体实施方式

[0029] 下面对本发明做进一步说明。
[0030] 一种利用AOP与Spring依赖注入实现应用数据自动备份的方法,包括业务数据日志保存及业务数据日志还原;
[0031] 业务数据日志保存包括如下步骤:
[0032] a‑1)用户通过Jsp页面录入用户信息并提交用户信息数据到后台目标,后台通过Controller方法请求用户信息数据的内存处理地址;
[0033] a‑2)当用户向后台发送增加业务数据的用户请求时,后台通过Controller方法接受用户请求,从用户请求中获取用户提交的增加的业务数据的内容,并将增加的业务数据
的内容封装为数据实体Java Bean类型;
[0034] a‑3)后台通过Controller方法调用目标Service结构业务处理方法,将步骤a‑2)中封装的Java Bean作为参数传给Service接口实现类;
[0035] a‑4)Service接口实现类接收到数据实体Java Bean后,获取Java Bean数据类型包含类名的全路径字符串,命名为BeanName;将Java Bean封装数据转为Json数据字符串,
命名为DataJson;获取Java Bean中当前Service注解名称,命名为ServiceName;获取Java 
Bean中当前处理业务请求的方法名称,命名为 MethodName;
[0036] a‑5)将BeanName、DataJson、ServiceName以及MethodName保存入项目数据库业务日志表中;
[0037] a‑6)将Service接口实现类接收到业务数据Java Bean传给DAO数据处理层,将业务数据保存至相应的数据库表中;
[0038] 业务数据日志还原包括如下步骤:
[0039] b‑1)读取数据库表中的数据实体Java Bean,获取Java Bean中ServiceName,通过Spring依赖注入方式通过获取的Service注解名称ServiceName获取业务数据日志的
Service接口;
[0040] b‑2)读取数据库表中业务数据日志信息Java Bean中MethodName,作为数据还原接口需调用的方法名称;
[0041] b‑3)读取数据库表中业务数据日志信息Java Bean中的属性BeanName,作为业务数据实体类型;
[0042] b‑4) 读取数据库表中业务数据日志信息Java Bean中的DataJson数据,作为业务数据的Json数据字符串;
[0043] b‑5)将Json数据字符串数据转为实体Java Bean类型的对象数据,通过调用获取的ServiceName下MethodName方法,将转为实体Java Bean类型的对象数据作为参数传递给
MethodName方法;
[0044] b‑6)将数据库表中业务数据传递给DAO数据处理层作数据持久化处理,将处理后的数据插入到相应的数据库业务表中。
[0045] 利用AOP(Java反射)技术与Spring依赖注入,实现应用数据的自动备份。从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。在定义
应用程序对某种服务(例如日志)的所有需求的时候。通过识别关注点,使得该服务能够被
更好的定义,更好的被编写代码,并获得更多的功能。这种方式还能够处理在代码涉及到多
个功能的时候所出现的问题,例如改变某一个功能可能会影响到其它的功能,在AOP中把这
样的麻烦称之为“纠结(tangling)。利用AOP技术对离散的方面进行的分析将有助于为开发
团队指定一位精于该项工作的专家。负责这项工作的最佳人选将可以有效利用自己的相关
技能和经验。AOP的作用是分离系统中各个关注点,将核心关注点和横切关注点分离开来。
所谓的分离关注就是将某一通用的需求功能从不相关的类之中分离出来;同时,能够使得
很多类共享一个行为,一旦行为发生变化,不必修改很多类,只要修改这个行为就可以。
[0046] 优选的,步骤a‑4)中还包括获取当前登录用户账号,命名为CreateUser。将其作为业务操作人进行保存,步骤a‑4)中还包括获取当前时间,将当前时间作为业务数据操作时
间保存入项目数据库业务日志表中。