首先定義一個抽象接口,JDK代理要求目標對象必須實現接口。(個人覺得這個應該是基于接口編程)
以UserManager接口為例。在里面我們定義了一個add方法。
接下來定義接口實現類。為了簡潔只是向客戶端輸出一句話。
下面是我們的動態代理類。代理類實現了java.lang.reflect.InvocationHandler接口。
動態代理機制用到jave反射方面的api,反射方面的資料往上很多的。不清楚的可以先查閱讀一下
代理類我添加很多注釋。應該很清楚了。這里我簡單說一下流程:當代理對象被調用的時候先會執行invoke方法,在此方法里面我們可添加
自己的業務邏輯代碼,然后才會執行目標對象的真實方法:method.invoke(this.targetObject, args);目標對象方法可能會有返回值,在這
里當存在返回值的時候我們返回一個Object.
下面代碼是客戶端調用和調用結果:
控制臺輸出結果:
這是代理方法
用戶 : 張三 添加成功