第十五章、基于注解的AOP编程

第十五章、基于注解的AOP编程,第1张

第十五章、基于注解的AOP编程 1.基于注解的AOP编程的开发步骤
    原始对象额外功能切⼊点组装切面

@Aspect
public class MyAspect {
    @Around("execution(* login(..))")
    
    public Object arround(ProceedingJoinPoint joinPoint) throws Throwable {
        System.out.println("- ---aspect log ------");
        Object ret = joinPoint.proceed();
        return ret;
    }
}
上述9-12行和之前的实现MethodInterceptor接口类似,如下代码所示
    
    
   配置文件:
  
    
    
   
//告知Spring基于注解进⾏AOP编程
    

2.细节 1.切入点复用
切⼊点复⽤:在切⾯类中定义⼀个方法,方法上⾯@Pointcut注解 通过这种⽅式,定义切⼊点表达式,后续更加有利于切⼊点复⽤。

@Aspect
//切面类
public class MyAspect {
    @Pointcut("execution(* login(..))")
    public void myPointcut(){}
//    添加切入点复用方法后,将@Around("execution(* login(..))")改为    @Around(value = "myPointcut()")
    @Around(value = "myPointcut()")
    public Object arround(ProceedingJoinPoint joinPoint) throws Throwable {
        System.out.println("- ---aspect log ------");
        Object ret = joinPoint.proceed();
        return ret;
    }
}

2.动态代理的创建方式
AOP底层实现 2种代理创建⽅式
1. JDK 通过实现接⼝ 做新的实现类⽅式 创建代理对象
2. Cglib通过继承⽗类 做新的⼦类创建代理对象
		默认情况 AOP编程 底层应⽤JDK动态代理创建⽅式
如果切换Cglib呢?	
1. 注解AOP开发
 //告知Spring基于注解进⾏AOP编程
 将 改成
 
 2. 传统的AOP开发切换Cglib
  		 
        
# 组装
        
    
    改成
  在aop:config标签中添加属性proxy-target-class="true" 如下:
    
 	

本系列文章从Spring5原理开始深入浅出,从工厂特性=>依赖注入–IOC=>AOP编程=>Spring事务=>纯注解开发。本文来自观看B站孙帅Spring教程后做的笔记。持续更新…

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5715847.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存