码迷,mamicode.com
首页 > 其他好文 > 详细

aop用代理实现

时间:2017-05-23 11:17:51      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:eve   void   超人   his   rri   代理类   shang   static   hand   

package com.atguigu.java;


import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;

interface Human1{
void info();
void fly();
}
//被代理类
class Superman1 implements Human1{

/* (non-Javadoc)
* @see com.atguigu.java.Human1#info()
*/
@Override
public void info() {
System.out.println("我是超人我怕谁");

}

/* (non-Javadoc)
* @see com.atguigu.java.Human1#fly()
*/
@Override
public void fly() {
System.out.println("i believe i can fly !");

}

}

class Humanutil1{
/**
* @author shanghaitao
* @since 2017年5月2日
*/
public void method1() {
System.out.println("------=方法一=-----");
}

/**
* @author shanghaitao
* @since 2017年5月2日
*/
public void method2() {
System.out.println("------=方法二=-----");
}

}


class MyinvacationHandlder1 implements InvocationHandler{

Object obj;
public void setObject(Object obj){
this.obj= obj;
}
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
Humanutil1 ht = new Humanutil1();
ht.method1();
Object oobj = method.invoke(obj, args);
ht.method2();
return oobj;
}

}

class Myproxy1{
/**
* @author shanghaitao
* @since 2017年5月2日
*/
public static Object getProxyInstance(Object obj) {
MyinvacationHandlder1 mh = new MyinvacationHandlder1();
mh.setObject(obj);
return Proxy.newProxyInstance(obj.getClass().getClassLoader(),
obj.getClass().getInterfaces(), mh);

}
}

/**
*方法说明
* @author shanghaitao
* @since 2017年5月2日
*/
public class TestAOP1 {
public static void main(String[] args) {
Superman1 man = new Superman1();
Object obj = Myproxy1.getProxyInstance(man);
Human1 hu = (Human1)obj;
hu.info();
System.out.println();
hu.fly();


}
}

 

输出

------=方法一=-----
我是超人我怕谁
------=方法二=-----

------=方法一=-----
i believe i can fly !
------=方法二=-----

aop用代理实现

标签:eve   void   超人   his   rri   代理类   shang   static   hand   

原文地址:http://www.cnblogs.com/taz372436/p/6892890.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!