この記事では、主に Java 動的プロキシの原則の分析に関する関連情報を紹介します。この記事が、必要な友人が動的プロキシの原則を習得するのに役立つことを願っています
Java 動的プロキシの原則分析
。概要
AOPのインターセプト機能はJavaのダイナミックプロキシによって実装されています。端的に言えば、ターゲット クラスをベースにアスペクト ロジックを追加して拡張ターゲット クラスを生成することです (アスペクト ロジックは、ターゲット クラスの関数が実行される前、ターゲット クラスの関数が実行された後、または実行されたときに実行されます)。 Spring の動的プロキシは、Cglib を使用して実装されています。ここで分析するのは、JDK での動的プロキシの実装メカニズムです。 例を通して、JDK での動的プロキシの実装を簡単に理解しましょう。インターフェイスpublic interface IHello {
public void sayHello();
}
public class HelloImpl implements IHello { public void sayHello() { System.out.println(“Hello World…”); } }
public class ProxyHandler implements InvocationHandler { private Object target; public ProxyHandler(Object target) { this.target = target; } public Object proxyInstance() { return Proxy.newProxyInstance(target.getClass().getClassLoader(), target.getClass().getInterfaces(), this); } public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { System.out.println(“aspect before … “); Object result = method.invoke(this.target, args); System.out.println(“aspect after … “); return result; } }
public class Main { public static void main(String[] args) { ProxyHandler proxy = new ProxyHandler(new HelloImpl()); IHello hello = (IHello) proxy.proxyInstance(); hello.sayHello(); } }
rreee
省略ドン気にしない コード
newProxyInstance() 方法
以上がJavaにおける動的プロキシ原理の解析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。