Java??????????????
?????xiaoluo501395377 ???????[ 2016/7/19 10:30:25 ] ??????????????????? Java
?????????????????Client??
public class Client
{
public static void main(String[] args)
{
// ?????????????????
Subject realSubject = new RealSubject();
// ???????????????????????????????????????????????????????????
InvocationHandler handler = new DynamicProxy(realSubject);
/*
* ???Proxy??newProxyInstance?????????????????????????????????????????
* ????????? handler.getClass().getClassLoader() ?????????????handler??????ClassLoader?????????????????????
* ?????????realSubject.getClass().getInterfaces()?????????????????????????????????????е???????????????????????????????????????????е??????
* ??????????handler?? ?????????????????????????????? InvocationHandler ?????????
*/
Subject subject = (Subject)Proxy.newProxyInstance(handler.getClass().getClassLoader()?? realSubject
.getClass().getInterfaces()?? handler);
System.out.println(subject.getClass().getName());
subject.rent();
subject.hello("world");
}
}
????????????????????????????
????$Proxy0
????before rent house
????Method:public abstract void com.xiaoluo.dynamicproxy.Subject.rent()
????I want to rent my house
????after rent house
????before rent house
????Method:public abstract void com.xiaoluo.dynamicproxy.Subject.hello(java.lang.String)
????hello: world
????after rent house
?????????????????? $Proxy0 ?????????????????????????? System.out.println(subject.getClass().getName()); ????????????????????????????????????????????????????????
????Subject subject = (Subject)Proxy.newProxyInstance(handler.getClass().getClassLoader()?? realSubject
????.getClass().getInterfaces()?? handler);
???????????????????????????????Subject??????????????InvocationHandler?????????????????????????????????????????????????Subject???????????????newProxyInstance?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????е??????????????????????Subject???????????????????Subject???????
?????????????????????? Proxy.newProxyInstance ????????????????jvm?????????????????????????????????InvocationHandler????????????????????????????????????????????????????????????????????????????????????$?????proxy??У????????????????????
????????????????????????
????subject.rent();
????subject.hello("world");
?????????????????????????????????????е???????????????????????????????????????? handler ?е?invoke???????У??????????? handler ?????????????? RealSubject???????????????????????????????????????????? handler ?е?invoke???????У?
public Object invoke(Object object?? Method method?? Object[] args)
throws Throwable
{
//????????????????????????????Щ????????
System.out.println("before rent house");
System.out.println("Method:" + method);
// ???????????????????????????????????????????????????handler?????invoke?????????е???
method.invoke(subject?? args);
//??????????????????????????????Щ????????
System.out.println("after rent house");
return null;
}
????????????????????????????????????????????????????????????÷???????????????Щ??????????????????????? method ?????????????
????public abstract void com.xiaoluo.dynamicproxy.Subject.rent()
????public abstract void com.xiaoluo.dynamicproxy.Subject.hello(java.lang.String)
???????????????Subject????е?????????????????????????????????????÷????????????????????????????? handler ?????invoke??????????????????????????????????????????????????????
?????????????java??????????
????????????????????java?е??????????????????????????????????????Spring??AOP????????????????????????????????????ú???????????????
???????????????????????漰???????????????????SPASVOС??(021-61079698-8054)?????????????????????????
??????
Java???????????Щ???????????????Java????????????????Java?б???Map????????Java Web???????????????Java??????????????д?????Java????????7???????????????????????(java .net ?????)???Java??????????Python??????Java webdriver??λ????????′????е?????Java??д??????????????????Java???????????????JavaScript????????????Java?????????????????? Java???????10??????????????Java?м????????????????java???????ü???????????м???????????????????
![](/images/ad-banner/ad-banner.png)
???·???
??????????????????
2023/3/23 14:23:39???д?ò??????????
2023/3/22 16:17:39????????????????????Щ??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???·???????·
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11????????
?????????App Bug???????????????????????Jmeter?????????QC??????APP????????????????app?????е????????jenkins+testng+ant+webdriver??????????????JMeter????HTTP???????Selenium 2.0 WebDriver ??????