Spring Aop理解

Spring Aop理解,第1张

Spring Aop理解

aop思想

原来我们java编程是抽离出来,之后哪个需要这个增强类需要类中引用
aop思想:通过配置来实现,所有类要用到的同一个类会在配置中去实现,在java运行的过程中使用

aop实现

  1. 通过JDK的方法来实现:动态代理但是实现方式必须是接口实现,
Target target =new Target()
TargetInterface  proxy=(TargetInterface)Proxy.newProxyInstance(
     target.getClass().getClassLoader(), //目标类加载器
     target.getClass().getInterfaces(), //目标对象相同的接口字节数组
     new InvocationHandler(){
       public Object invoke(Object proxy,Method method,Object[] args)throws Throwble{
         ...  // 这里可以先实现之前的方法
         method.invoke(target ,args) //实现目标对象
         ...  // 这里可以先实现之后的方法
          return null;
       }
     }
    
)  //Jdk代理实现   
  1. 通过第三方cglib方法实现:父类
// cglib方法
Target target =new Target();
// 实现增强器
Enhancer enhancer=new Enhancer();
//设置父类(目标)
enhancer.setSuperclass(Target.class);
// 设置回调
enhander.setCallback(new MethodInterceptor){
   public Object intercept(Object proxy,Method method,Object[] args,MethodProxy methodProxy)throws Throwble{
         ...  // 这里可以先实现之前的方法
        Object invoke=  method.invoke(target ,args) //实现目标对象
         ...  // 这里可以先实现之后的方法
          return invoke;
       }
}
Target target=(Target)enhander.create()
// 

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存