Spring AOP和事务

一、Spring AOP

1.SpringAOP简介

        介绍:AOP:Aspect Oriented Programming,面向切面编程,可以说是OOP(Object Oriented Programming,面向对象编程)的补充和完善。

        AOP利用一种称为“横切”的技术,剖开对象内部,并将公共行为封装到可重用模块,从而减少重复代码,降低耦合。

2.为什么要用AOP

        1.分离系统中的各种关注点,将核心关注点和横切关注点分离开来。

        2.减少代码的重复,各个模块的重用性加强。

        3.降低 模块间的耦合度,提高代码的可操作性和可维护性。

3.AOP的相关术语

       1. 通知(Advice):定义了切点处所要执行的程序代码以及执行时机

       2.连接点(Join point):是在应用执行过程中满足切点范围的具体的点

       3.切点(Poincut):定义切面插入在哪些方法上,确定切面使用范围

       4.切面(Aspect):是指封装横切到系统功能的类,包含通知和切点

       5.织入(Weaving):是把切面插入到目标对象上

4.通知的类型

前置通知

<aop:before>@Before用于配置前置通知。指定增强的方法在切入点方法之前执行
后置通知<aop:AfterReturning>@AfterReturning用于配置后置通知。指定增强的方法在切入点方法之后执行
环绕通知<aop:Around>@Around用于配置环绕通知。指定增强的方法在切入点方法之前和之后都执行
异常抛出通知<aop:AfterThrowing>@AfterThrowing用于配置异常抛出通知。指定增强的方法在出现异常时执行
最终通知<aop:After>@After用于配置最终通知。无论增强方式执行是否有异常都会执行

5.AOP的使用

新增一个日志记录服务类“LogService”,并配置到容器中

引入Spring AOP相关的依赖

在Spring配置文件中加入AOP切面配置

执行结果

二、事务

1.什么是Spring的事务管理

        是通过AOP代理实现的,对被代理对象的每个方法进行拦截,在方法执行前启动事务,在方法执行完成后根据是否有异常及异常的类型进行提交或回滚。

2.事务的基本事务属性

        传播行为(propagation behavior)

        隔离级别(isolation level)

        是否只读(isReadOnly)

        事务超时(timeout)

3.事务的ACID原则

        原子性:一个事务已经是一个不可再分割的工作单位。事务中的全部操作要么都做;要么都不做

        一致性:事务的执行使数据从一个状态转换为另一个状态,但是对于整个数据的完整性保持稳定。

        隔离性:事务允许多个用户对同一个数据进行并发访问,而不破坏数据的正确性和完整性。同时,并行事务的修改必须与其他并行事务的修改相互独立。

        持久性:一个事务一旦提交,它对数据库中数据的改变会永久存储起来。其他操作不会对它产生影响

4.spring事务API介绍:

(1) PlatformTransactionManager【事务平台管理器】

        是一个接口,定义了获取事务【getTransaction】、提交事务【commit】、回滚事务【rollback】的接口

(2)TransactionDefinition【事务定义信息】

        是一个接口,定义了事务隔离级别、事务传播行为、事务超时时间、事务是否只读

5.为什么要事务隔离

        脏读 :在一个事务中读取到了另外一个事务修改的【未提交的数据】,而导致多次读取同一个数据返回的结果不一致

        不可重复读 : 在一个事务中读取到了另外一个事务修改的【已提交的数据】,而导致多次读取同一个数据返回的结果不一致

        幻读(虚读): 一个事务读取了几行记录后,另一个事务插入一些记录,幻读就发生了。再后来的查询中,第一个事务就会发现有些原来没有的记录

6.具体实现(模拟银行转账业务事务管理 )

        1.在数据库中创建一个表

        2.引入相关依赖

        3.创建模型类

        4.创建Dao接口和实现类

        5.创建service接口和实现类

        6.编写jdbc.properties

        注解方式:

        Spring配置类SpringConfiguration

        配置类JdbcConfig

事务管理器的优点:

        数据一致性

        数据可靠性

        并发控制

        提高性能

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值