JAVA_動態代理AOP切面程式設計
package staticProxy;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;interface Human { void info(); void fly();}// 被代理類class SuperMan implements Human { public void info() { System.out.println("我是SuperMan!"); } public void fly() { System.out.println("I believe 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 object) { this.obj = object; } @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { HumanUtil h = new HumanUtil(); h.method1(); Object returnVal = method.invoke(obj, args); h.method2(); return returnVal; }}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 DynamicProxyAOP { 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(); }}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1978/viewspace-2813073/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- .NET Core 實現動態代理做AOP(面向切面程式設計)程式設計
- AOP 面向切面程式設計程式設計
- AOP(面向切面程式設計)程式設計
- 面向切面程式設計AOP程式設計
- Java 面向切面程式設計AOPJava程式設計
- AOP--面向切面程式設計程式設計
- Day67 Spring AOP(面向切面程式設計) 和代理設計模式Spring程式設計設計模式
- 設計模式之面向切面程式設計AOP設計模式程式設計
- Android AOP面向切面設計程式設計Android程式設計
- 前端js面向切面程式設計(AOP)前端JS程式設計
- Android面向切面程式設計(AOP)Android程式設計
- aop面向切面程式設計的實現程式設計
- Java中的面向切面程式設計(AOP)Java程式設計
- 前端解讀面向切面程式設計(AOP)前端程式設計
- Spring之AOP面向切面程式設計Spring程式設計
- Java動態程式設計---動態代理Java程式設計
- 01.AOP(AspectOrientatedProgramming面向切面程式設計)程式設計
- (系列七).net8 Aop切面程式設計程式設計
- Java動態代理(AOP)Java
- AOP之動態代理
- AOP之靜態代理VS動態代理
- 淺談Java和SAP ABAP的靜態代理和動態代理,以及ABAP面向切面程式設計的嘗試Java程式設計
- Spring AOP——Spring 中面向切面程式設計Spring程式設計
- Spring AOP(面向切面程式設計)是什麼?Spring程式設計
- spring aop 切面程式設計控制管理事務Spring程式設計
- 手寫Spring---AOP面向切面程式設計(4)Spring程式設計
- 手寫Spring---AOP面向切面程式設計(3)Spring程式設計
- Spring 面向切面程式設計AOP 詳細講解Spring程式設計
- 淺析DispatchProxy動態代理AOP
- JS實現AOP 面向切面程式設計 (裝飾者模式)JS程式設計模式
- Spring Boot實戰系列(3)AOP面向切面程式設計Spring Boot程式設計
- Spring之旅第七站:面向切面程式設計(AOP)Spring程式設計
- spring aop原理 JDK動態代理和CGLIB動態代理SpringJDKCGLib
- 設計模式:動態代理設計模式
- Util應用框架基礎(三) - 面向切面程式設計(AspectCore AOP)框架程式設計
- Spring AOP --JDK動態代理方式SpringJDK
- 程式設計思想 面向切面程式設計程式設計
- 從動態代理到Spring AOP(上)Spring