Spring-AOP

本文介绍了Spring中的AOP概念,包括导包、基础操作、通知类和通知内容的创建,以及匹配关系的设定。AOP通过代理模式实现,当切入点匹配成功时,Spring会使用代理对象。文章还探讨了AOP的通知类型,如前置、后置、环绕通知,以及如何处理方法的返回值。此外,文章详细讲解了Spring事务管理,包括事务配置、事务角色以及事务的传播行为。
摘要由CSDN通过智能技术生成

 

 

 

 第一步导包

切面包 

AOP的包在context包下之前导过(被包含)

 

第二步

基础操作

第三步 通知类和通知内容

 第四步匹配关系

在配置类中用注解表明 我要用注解开发AOP了

加一个

 Enable……

然后在通知类里面

 第一步加一个Component 告诉Spring 这个类是你管2

第二步加一个Aspect 告诉配置类 我这个是用注解开发的AOP内容(切面)

第三步把通知类内容做出来:

你要追加的功能 上面标明是在方法执行前还是后 然后()里填通知类里面的方法(空壳)id

然后在 空壳上标注切点(执行)然后执行里面写 有无返回值 然后包的位置以及方法名称

核心思想:1.你要给谁追加功能

2.追加什么功能

 

 3.怎么绑定在一起

4.怎么能够运行成功

 

 

 

 

 

 

 Spring中有AOP后的工作流程

 注意是切面配置中的切入点(如图中的pt)

 

 AOP内部是用代理模式实现的

 如果一旦匹配成功 Spring容器里的匹配的对象就会用代理对象!!

可以获取bean后用getclass观察结果

 

AOP切入点表达式

 

 

 

最后两个 任意返回值 com.itheima包下的任意包下的Service类(接口)中的find开头或save的方法(参数任意) 

 

 AOP通知类型

在通知类里面的内容

 

 

 

 如果原来那个方法有返回值,环绕方法得把原来那个返回值还人家因为环绕方法相当于截胡

上面那个是运行成功才运行

下面那个是抛异常了才运行

 

 

 

 

 案例:

 

 

 

 

 

 

 

 

形参proceedingjoinpoint必须在形参的第一位否则会报错 

 

 

 

 

 

 Spring事务

 

 

 

 在SpringConfig类里面写这个👇

 方法是Spring的方法,其中DataSource采用注入的方式,用的是JDBC的DataSource

 

 Spring事务角色:事务管理员

 注意

 

这里的datasource和jdbcconfig里面的datasource必须一致才能完成()

所以这个叫做datasourcetransactionmanager 必须有相同的数据源

通过相同的数据源来进行管理

 

 Spring底层也是用的jdbc的技术 所以说 必须要jdbc和mybatis的数据源一致才能用

事务相关配置

 

用rollbackFor的时候有些异常默认不进行回滚 

这时要自己设置不然事务就失败了(钱只收了但没回滚)

 

 

 第三个事务 我选择开启一个新事务 不加入你们

 

 

 后面是支持与不支持事务

必须携带和必须不携带事务(要想调用我必须携带事务)

1:可以设置哪个异常我回滚

2.可以三个事务被一个事务管理员管,但是其中一个可以不参加进去我自己新建一个事务

3.自定义事务管理员和协调员的关系,呈现在标签@Transactional(propagation=?) 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值