CN109086034B - 利用AOP与Spring依赖注入实现应用数据自动备份的方法 - Google Patents
利用AOP与Spring依赖注入实现应用数据自动备份的方法 Download PDFInfo
- Publication number
- CN109086034B CN109086034B CN201810768502.7A CN201810768502A CN109086034B CN 109086034 B CN109086034 B CN 109086034B CN 201810768502 A CN201810768502 A CN 201810768502A CN 109086034 B CN109086034 B CN 109086034B
- Authority
- CN
- China
- Prior art keywords
- data
- service
- java bean
- name
- service data
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
一种利用AOP与Spring依赖注入实现应用数据自动备份的方法,包括业务数据日志保存及业务数据日志还原;利用AOP(Java反射)技术与Spring依赖注入,实现应用数据的自动备份。从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。在定义应用程序对某种服务(例如日志)的所有需求的时候。通过识别关注点,使得该服务能够被更好的定义,更好的被编写代码,并获得更多的功能。
Description
技术领域
本发明涉及计算机数据安全及防护技术领域,具体涉及一种利用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;获取JavaBean中当前处理业务请求的方法名称,命名为 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;获取JavaBean中当前处理业务请求的方法名称,命名为 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)中还包括获取当前时间,将当前时间作为业务数据操作时间保存入项目数据库业务日志表中。
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 CN109086034A (zh) | 2018-12-25 |
CN109086034B true 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) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113608725A (zh) * | 2021-07-16 | 2021-11-05 | 济南浪潮数据技术有限公司 | 一种对内存数据进行操作的方法、系统、设备及介质 |
Citations (3)
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开发中间件 |
CN107180110A (zh) * | 2017-06-13 | 2017-09-19 | 北京京润恒远科技有限公司 | 一种基于DataTable的高效数据库接口的实现方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105739987B (zh) * | 2016-02-03 | 2018-12-11 | 成都四方伟业软件股份有限公司 | 面向SOA的快速构建JavaWeb应用的系统框架 |
CN105912455B (zh) * | 2016-04-27 | 2018-11-02 | 努比亚技术有限公司 | 业务执行方法及服务器 |
CN106648647B (zh) * | 2016-12-13 | 2020-03-24 | 北京中船信息科技有限公司 | 基于Spring依赖注入动态创建对象的综合管控系统 |
CN107018046A (zh) * | 2017-06-06 | 2017-08-04 | 上海鋆创信息技术有限公司 | 一种数据采集方法、装置、终端及存储介质 |
-
2018
- 2018-07-13 CN CN201810768502.7A patent/CN109086034B/zh active Active
Patent Citations (3)
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开发中间件 |
CN107180110A (zh) * | 2017-06-13 | 2017-09-19 | 北京京润恒远科技有限公司 | 一种基于DataTable的高效数据库接口的实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109086034A (zh) | 2018-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107526624B (zh) | 一种基于Java虚拟机的智能合约执行引擎 | |
CN104821954B (zh) | 一种跨平台远程过程调用方法 | |
CN108881111B (zh) | 一种实现多租户系统的方法及装置 | |
CN110362490B (zh) | 融合iOS与Android移动应用的自动化测试方法及系统 | |
CN111444103B (zh) | 一种Web页面自动化测试方法及相关设备 | |
CN103595770B (zh) | Sdk实现文件下载的方法与装置 | |
CN103729292A (zh) | 一种跨主机、跨平台的远程命令调用方法和系统 | |
CN114880159B (zh) | 数据处理方法、装置、设备及存储介质 | |
CN110532182B (zh) | 一种虚拟化平台的自动化测试方法及装置 | |
US20170085653A1 (en) | Method, device and system for message distribution | |
CN114721719B (zh) | 一种在集群中容器化部署异构应用的方法和系统 | |
CN112929210B (zh) | 在WebFlux框架搭建的网关路由应用插件的方法、系统及其应用 | |
CN109086034B (zh) | 利用AOP与Spring依赖注入实现应用数据自动备份的方法 | |
CN102982217B (zh) | 丝印的处理方法和装置 | |
CN114327383A (zh) | 基于soa架构中间件的服务配置系统、方法及可读存储介质 | |
CN109739666A (zh) | 单例方法的跨进程调用方法、装置、设备及存储介质 | |
CN108496157B (zh) | 使用扩展接口提供运行时跟踪的系统和方法 | |
CN106875184A (zh) | 异常场景模拟方法、装置及设备 | |
CN110647319A (zh) | 功能模块解耦方法及系统 | |
CN110874321A (zh) | 测试接口的远程调用方法、调用封装引擎及远程代理引擎 | |
CN107015787B (zh) | 一种交互式应用框架设计的方法及装置 | |
CN112559336B (zh) | 自适应调试异构计算芯片的方法、装置、系统及主板芯片 | |
CN114238091A (zh) | 一种常驻型交互式服务集群测试方法及系统 | |
CN112799695B (zh) | 一种多域多源协同共场景软件重构实现方法 | |
US8239837B2 (en) | Remotely handling exceptions through STAF |
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 |