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

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

Info

Publication number
CN109086034A
CN109086034A CN201810768502.7A CN201810768502A CN109086034A CN 109086034 A CN109086034 A CN 109086034A CN 201810768502 A CN201810768502 A CN 201810768502A CN 109086034 A CN109086034 A CN 109086034A
Authority
CN
China
Prior art keywords
data
business datum
java bean
service
log
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.)
Granted
Application number
CN201810768502.7A
Other languages
English (en)
Other versions
CN109086034B (zh
Inventor
段吉民
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong Heng Yun Mdt Infotech Ltd
Original Assignee
Shandong Heng Yun Mdt Infotech Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shandong Heng Yun Mdt Infotech Ltd filed Critical Shandong Heng Yun Mdt Infotech Ltd
Priority to CN201810768502.7A priority Critical patent/CN109086034B/zh
Publication of CN109086034A publication Critical patent/CN109086034A/zh
Application granted granted Critical
Publication of CN109086034B publication Critical patent/CN109086034B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/24Object-oriented
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

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

Description

利用AOP与Spring依赖注入实现应用数据自动备份的方法
技术领域
本发明涉及计算机数据安全及防护技术领域,具体涉及一种利用AOP与Spring依赖注入实现应用数据自动备份的方法。
背景技术
实现AOP(Java反射)技术,主要分为两大类:一是采用动态代理技术,利用截取消息的方式,对该消息进行装饰,以取代原有对象行为的执行;二是采用静态织入的方式,引入特定的语法创建“方面”,从而使得编译器可以在编译期间织入有关“方面”的代码,所谓“方面”,简单地说,就是将那些与业务无关,却为业务模块所共同调用的逻辑或责任封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可操作性和可维护性。AOP包含的技术特性分别为:
1、join point(连接点):是程序执行中的一个精确执行点,例如类中的一个方法。它是一个抽象的概念,在实现AOP时,并不需要去定义一个join point。
2、point cut(切入点):本质上是一个捕获连接点的结构。在AOP中,可以定义一个point cut,来捕获相关方法的调用。
3、advice(通知):是point cut的执行代码,是执行“方面”的具体逻辑。
4、aspect(方面):point cut和advice结合起来就是aspect,它类似于OOP中定义的一个类,但它代表的更多是对象间横向的关系。
5、introduce(引入):为对象引入附加的方法或属性,从而达到修改对象结构的目的。
其具备如下优点:1,减少系统的重复代码;2,减低模块间的耦合度;3,可操作性、可维护性。但是以上技术在新的云计算环境下,存在以下的问题:1,过于复杂;2,破坏封装;3, 需要专门的Java编译器。
发明内容
本发明为了克服以上技术的不足,提供了一种利用AOP(Java反射)技术与Spring依赖注入,实现应用数据的自动备份。从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率的实现应用数据自动备份的方法。
本发明克服其技术问题所采用的技术方案是:
一种利用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层作数据持久化处理,将处理后的数据插入到相应的数据库业务表中。
步骤a-4)中还包括获取当前登录用户账号,命名为CreateUser。
步骤a-4)中还包括获取当前时间,将当前时间作为业务数据操作时间保存如项目数据库业务日志表中。
本发明的有益效果是:利用AOP(Java反射)技术与Spring依赖注入,实现应用数据的自动备份。从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。在定义应用程序对某种服务(例如日志)的所有需求的时候。通过识别关注点,使得该服务能够被更好的定义,更好的被编写代码,并获得更多的功能。
具体实施方式
下面对本发明做进一步说明。
一种利用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层作数据持久化处理,将处理后的数据插入到相应的数据库业务表中。
利用AOP(Java反射)技术与Spring依赖注入,实现应用数据的自动备份。从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。在定义应用程序对某种服务(例如日志)的所有需求的时候。通过识别关注点,使得该服务能够被更好的定义,更好的被编写代码,并获得更多的功能。这种方式还能够处理在代码涉及到多个功能的时候所出现的问题,例如改变某一个功能可能会影响到其它的功能,在AOP中把这样的麻烦称之为“纠结(tangling)。利用AOP技术对离散的方面进行的分析将有助于为开发团队指定一位精于该项工作的专家。负责这项工作的最佳人选将可以有效利用自己的相关技能和经验。AOP的作用是分离系统中各个关注点,将核心关注点和横切关注点分离开来。所谓的分离关注就是将某一通用的需求功能从不相关的类之中分离出来;同时,能够使得很多类共享一个行为,一旦行为发生变化,不必修改很多类,只要修改这个行为就可以。
优选的,步骤a-4)中还包括获取当前登录用户账号,命名为CreateUser。将其作为业务操作人进行保存,步骤a-4)中还包括获取当前时间,将当前时间作为业务数据操作时间保存如项目数据库业务日志表中。

Claims (3)

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)中还包括获取当前时间,将当前时间作为业务数据操作时间保存如项目数据库业务日志表中。
CN201810768502.7A 2018-07-13 2018-07-13 利用AOP与Spring依赖注入实现应用数据自动备份的方法 Active CN109086034B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810768502.7A CN109086034B (zh) 2018-07-13 2018-07-13 利用AOP与Spring依赖注入实现应用数据自动备份的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810768502.7A CN109086034B (zh) 2018-07-13 2018-07-13 利用AOP与Spring依赖注入实现应用数据自动备份的方法

Publications (2)

Publication Number Publication Date
CN109086034A true CN109086034A (zh) 2018-12-25
CN109086034B CN109086034B (zh) 2021-07-02

Family

ID=64837798

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810768502.7A Active CN109086034B (zh) 2018-07-13 2018-07-13 利用AOP与Spring依赖注入实现应用数据自动备份的方法

Country Status (1)

Country Link
CN (1) CN109086034B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101339559A (zh) * 2008-07-18 2009-01-07 北京航空航天大学 一种数据持久化实现方法
CN102968307A (zh) * 2012-11-29 2013-03-13 中国传媒大学 一种基于java的web开发中间件
CN105739987A (zh) * 2016-02-03 2016-07-06 成都四方伟业软件股份有限公司 面向SOA的快速构建JavaWeb应用的系统框架
CN105912455A (zh) * 2016-04-27 2016-08-31 努比亚技术有限公司 业务执行方法及服务器
CN106648647A (zh) * 2016-12-13 2017-05-10 北京中船信息科技有限公司 基于Spring依赖注入动态创建对象的综合管控系统
CN107018046A (zh) * 2017-06-06 2017-08-04 上海鋆创信息技术有限公司 一种数据采集方法、装置、终端及存储介质
CN107180110A (zh) * 2017-06-13 2017-09-19 北京京润恒远科技有限公司 一种基于DataTable的高效数据库接口的实现方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101339559A (zh) * 2008-07-18 2009-01-07 北京航空航天大学 一种数据持久化实现方法
CN102968307A (zh) * 2012-11-29 2013-03-13 中国传媒大学 一种基于java的web开发中间件
CN105739987A (zh) * 2016-02-03 2016-07-06 成都四方伟业软件股份有限公司 面向SOA的快速构建JavaWeb应用的系统框架
CN105912455A (zh) * 2016-04-27 2016-08-31 努比亚技术有限公司 业务执行方法及服务器
CN106648647A (zh) * 2016-12-13 2017-05-10 北京中船信息科技有限公司 基于Spring依赖注入动态创建对象的综合管控系统
CN107018046A (zh) * 2017-06-06 2017-08-04 上海鋆创信息技术有限公司 一种数据采集方法、装置、终端及存储介质
CN107180110A (zh) * 2017-06-13 2017-09-19 北京京润恒远科技有限公司 一种基于DataTable的高效数据库接口的实现方法

Also Published As

Publication number Publication date
CN109086034B (zh) 2021-07-02

Similar Documents

Publication Publication Date Title
CN105117645B (zh) 基于文件系统过滤驱动实现沙箱虚拟机多样本运行的方法
CN107526624B (zh) 一种基于Java虚拟机的智能合约执行引擎
CN106875156B (zh) 一种通用化智能审核平台及其审核方法
CN104375836B (zh) 一种展示锁屏窗口的方法及装置
US9129058B2 (en) Application monitoring through continuous record and replay
CN109324791A (zh) 金融自助终端业务流程开发方法、装置及终端设备
CN104992081B (zh) 一种Android应用程序第三方代码的安全增强方法
US20110047415A1 (en) Debugging of business flows deployed in production servers
AU2005203386A1 (en) Test automation stack layering
US20170277616A1 (en) Replay-suitable trace recording by service container
CN110603527A (zh) 服务器侧生产代码的有条件调试
Prandi et al. Formal analysis of BPMN via a translation into COWS
CN109670664A (zh) 基于工作流的流程实施方法、用户设备、存储介质及装置
CN110362490A (zh) 融合iOS与Android移动应用的自动化测试方法及系统
CN109901915A (zh) 一种分布式服务框架中的全链路堆栈信息跟踪方法
CN110489310A (zh) 一种记录用户操作的方法、装置、存储介质及计算机设备
US20070003347A1 (en) State machine-driven interactive system and associated methods
CN113779578B (zh) 移动端应用的智能混淆方法和系统
CN105718796B (zh) 一种安卓用户隐私数据访问的系统调用级监控方法
CN112257037B (zh) 一种进程水印方法、系统及电子设备
CN109086034A (zh) 利用AOP与Spring依赖注入实现应用数据自动备份的方法
CN110442582A (zh) 场景检测方法、装置、设备和介质
CN101373506A (zh) 一种基于漏洞模型的软件漏洞模型检测方法
CN107798244A (zh) 一种检测远程代码执行漏洞的方法及装置
CN110134615A (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