用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - java代码库

动态代理实现AOP

2016-07-26 作者: dandan举报

[java]代码库

interface human{
    void info();
    void fly();
     
}
 
class SuperMan implements human{
    public void info(){
        System.out.println("我是超人");
    }
    public void fly(){
        System.out.println("I can fly");
    }
}
class HumanUtil{
    public void method1(){
        System.out.println("=========方法一=============");
    }
     
    public void method2(){
        System.out.println("=========方法二=============");
    }
}
 class MyInvocationHandler implements InvocationHandler{
    //被代理对象声明
     Object obj;
      
     public void setObject(Object obj){
         this.obj=obj;
     }
 
    @Override
    public Object invoke(Object proxy, Method method, Object[] args)
            throws Throwable {
        HumanUtil h = new HumanUtil();
        h.method1();
        Object returlVal=method.invoke(obj, args);
        h.method2();
        return returlVal;
    }
      
 }
  
 class MyProxy{
     //动态的创建一个代理类对象
     public static Object getProxyInstance(Object obj){
         MyInvocationHandler handler = new MyInvocationHandler();
         handler.setObject(obj);
         return Proxy.newProxyInstance(obj.getClass().getClassLoader(), obj.getClass().getInterfaces(), handler);
     }
 }
public class testAop {
     
    public static  void main(String[] args){
        SuperMan man= new SuperMan();
        Object obj=MyProxy.getProxyInstance(man);
         
        human hu=(human)obj;
        hu.info();
        System.out.println();
        hu.fly();
         
    }
 
}


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...