Spring学习三——动态代理与AOP

5 篇文章 0 订阅

day3......

一、数据库转账之--事物分析

事物控制应该都是在业务层实现类中

以下操作应当只有一个Connection

控制事务:

                        1)首先设置自动提交为手动提交,即开启事务;

                        2)执行具体的操作;

                        3)根据需要,返回必要的数据;

                        4)关闭事务,释放资源;

二、动态代理

1、基于接口的动态代理

 

 

2、基于子类的代理

导入依赖cglib --》拷贝client和Producer类到包cglib下 --》

Producer用final来修饰一下

如何写动态代理的增强方法?是写动态代理的关键

作用:

        真正的关闭连接,加回池子中

        解决全栈中文乱码

3.使用动态代理实现事务控制

新建factory包,

三、Spring之AOP

1、AOP的概念

作用及优势:

        

  实现方式:使用动态代理的方式

2、spring中的AOP术语和细节

1)术语

业务层中的方法都是连接点;所有的切入点都是连接点,但并不是所有的连接点都是切入点,

只有被增强的连接点是切入点;

2)AOP开发需要明确的事情

 

3)AOP中通知类型

通用化切入点表达式:

        

环绕通知:

      

public void aroundPrint(){
        
      System.out.println("环绕通知:logger类中的aroundPrint方法开始记录日志。。。");
      
    }


//切入点方法没有执行,而执行了通知方法
//下述解决方法:手动配置环绕通知,实现切入点方法的执行

四、Spring中基于注解的AOP配置

1)@Before  @AfterReturning @AfterThrowing @After

2)@Around

执行调用顺序有一定的问题

使用环绕通知,没有顺序问题

总结:

       动态代理:基于接口、基于子类

       使用AOP实现代理

       增强代码

作业:删除factory包,加入spring中的AOP实现对事物的控制?

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值