SpringAop 知识点

代理模式
1.概念:
代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用,通俗的来讲代理模式就是我们生活中常见的中介
2.作用:
开闭原则,增加功能(在原有功能的基础上增加一些功能),控制某个对象的引用
3.原则:
1.必须与目标对象实现相同的接口 2.依赖于目标对象而创建
4.方式
1.静态代理:工作量增大 ,需要实现相同的接口,并实现其中的方法
2.动态代理:再程序执行过程中,有程序动态去创建
spring
spring 是集众多设计模式于一身的项目管理框架,并致力于javaee轻量级解决方案
spring 核心思想之一 springAop 面向切面编程 springIOC 控制反转

aop 核心三个概念

  1. advice (通知)
  • 前置通知 实现MethodBeforeAdvice接口
    目标方法运行之前执行的功能
  • 后置通知 实现AfterReturningAdvice接口
    目标方法运行之后执行的功能
  • 异常通知 实现ThrowsAdvice 接口
    目标方法发生异常执行的功能
  • 环绕通知 实现MethodInterceptor接口
    监控整个方法的运行(之前,之后,异常)发起的通知
  1. pointCut(切入点)
    为哪些方法添加通知对象
    在xml文件中配置切入点
    1.创建切入点
    方法级别的切入点表达式(细粒度的切入点表达式)
    1.语法
    * (包名 返回值 类名 方法名) 所有
    execution(* com.baizhi….(…))
    返回值 : * com.baizhi : 包名 … : 路径 * : 类名 * : 方法名 … : 参数列表
    常用: execution(* com.baizhi.BeforeAdvice..(…)) 在这个包下的所有类
    类级别的切入点表达式(粗粒度的切入点表达式)
    within(com.baizhi.BeforeAdvice.*)
    在这个包下的所有类

                     创建切入点
                     id : 唯一标识(名字)
                     expression :  切入点表达式
                     
                 <aop:config>
                             <aop:pointcut id="pt" expression="execution(* com.baizhi.service.UserServiceImpl.*(..)"></aop:pointcut>
                 </aop:comfig>
         2.组装切面
             
              组装切面
              advice-ref : 该切面关联哪个通知
              pointcut-ref : 该切面关联哪个切入点
              
                 <aop:advisor advice-ref="baeforeProxy" pointcut-ref="pt" ></aop:advisor>
    
  2. Aspect (切面)
    通知(advice)+切入点(pointCut)
    spring中Aop生成动态代理的方式
    1.jdk 基于接口生成动态代理 spring中默认jdk生成动态代理 默认false
    cglib 基于实现类构建代理对象
    手动设置 <aop:config proxy-target-class=“false/true”></aop:config>

  3. target : 目标对象 proxy : 代理对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值