Java动态代理和AOP应用示例

  

本文实例讲述了Java动态代理和AOP应用。分享给大家供大家参考,具体如下:

  

<强>一点睛

  

动态代理在AOP(东方方面计划,即面向切面编程)里被称为AOP代理,AOP代理可代替目标对象,AOP代理包含了目标对象的全部方法。但AOP代理中的方法与目标对象的方法存在差异:AOP代理里的方法可以在执行目标方法之前,之后插入一些通用处理。

  

癑ava动态代理和AOP应用示例"

  

<强>二代码

  

Dog.java         公共接口的狗   {//信息方法声明   空白的信息();//运行方法声明   空运行();   }      之前      

GunDog.java         公共类猎犬实现狗   {//实现info()方法,仅仅打印一个字符串   公共空间信息()   {   System.out.println(“我是一只猎狗”);   }//实现run()方法,仅仅打印一个字符串   公共空间run ()   {   System.out.println(“我奔跑迅速”);   }   }      之前      

DogUtil.java         公开课DogUtil   {//第一个拦截器方法   公共空间method1 ()   {   System.out.println(“=====模拟第一个通用方法=====");   }//第二个拦截器方法   公共空间method2 ()   {   System.out.println(“=====模拟通用方法二=====");   }   }      之前      

MyInvokationHandler.java         进口数组;*;   公共类MyInvokationHandler实现InvocationHandler   {//需要被代理的对象   私有对象目标;   公共空间setTarget(对象目标)   {   这一点。目标=目标;   }//执行动态代理对象的所有方法时,都会被替换成执行如下的调用方法   公共对象调用对象代理、方法方法,对象[]参数)   抛出异常   {   新DogUtil DogUtil du=();//执行DogUtil对象中的method1。   du.method1 ();//以目标作为主调来执行方法方法   结果=方法对象。调用(目标,args);//执行DogUtil对象中的method2。   du.method2 ();   返回结果;   }   }      之前      

MyProxyFactory.java         进口数组;*;   公开课MyProxyFactory   {//为指定目标生成动态代理对象   公共静态对象getProxy(对象目标)   抛出异常   {//创建一个MyInvokationHandler对象   MyInvokationHandler处理程序=新MyInvokationHandler ();//为MyInvokationHandler设置目标对象   handler.setTarget(目标);//创建,并返回一个动态代理   .getClassLoader返回Proxy.newProxyInstance (target.getClass () ()   ,.getInterfaces target.getClass()(),处理程序);   }   }      之前      

Test.java         公开课测试   {   公共静态void main (String [] args)   抛出异常   {//创建一个原始的猎犬对象,作为目标   狗目标=new猎犬();//以指定的目标来创建动态代理   狗狗=(狗)MyProxyFactory.getProxy(目标);   dog.info ();   dog.run ();   }   }      之前      

<强>三运行

  
  

E: \ Java \疯狂Java讲义\代码\ 18 \ 18.5 \ DynaProxy> Java测试
=====模拟第一个通用方法=====
  我是一只猎狗
=====模拟通用方法二=====
=====模拟第一个通用方法=====
  我奔跑迅速
=====模拟通用方法二=====

     

更多的java相关内容感兴趣的读者可查看本站专题:《java面向对象程序设计入门与进阶教程》、《java数据结构与算法教程》、《java操作DOM节点技巧总结》,《java文件与目录操作技巧汇总》和《java缓存操作技巧汇总》

  

希望本文所述对大家java程序设计有所帮助。

Java动态代理和AOP应用示例