Dieser Artikel stellt hauptsächlich relevante Informationen zur Analyse der dynamischen Proxy-Prinzipien von Java vor. Ich hoffe, dass dieser Artikel jedem helfen kann, die Prinzipien des dynamischen Proxys zu beherrschen Prinzip des dynamischen Proxys
Zusammenfassung
Die Abfangfunktion von AOP wird durch den dynamischen Proxy in Java implementiert. Um es ganz klar auszudrücken: Es geht darum, eine Aspektlogik basierend auf der Zielklasse hinzuzufügen, um eine erweiterte Zielklasse zu generieren (die Aspektlogik wird entweder vor der Ausführung der Zielklassenfunktion oder nach der Ausführung der Zielklassenfunktion oder wann ausgeführt). Die Zielklassenfunktion löst eine Ausnahme aus. Der dynamische Proxy wird mit Cglib implementiert.
Lassen Sie uns die dynamische Proxy-Implementierung im JDK schnell verstehen 🎜>BeispielSchnittstelle, die einen Proxy erfordert
Klasse, die einen Proxy erfordert
public interface IHello { public void sayHello(); }
Anrufprozessor-Implementierungsklasse
public class HelloImpl implements IHello { public void sayHello() { System.out.println(“Hello World…”); } }
Testklasseneintrag
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; } }
Proxy Quellcode-Analyse
public class Main { public static void main(String[] args) { ProxyHandler proxy = new ProxyHandler(new HelloImpl()); IHello hello = (IHello) proxy.proxyInstance(); hello.sayHello(); } }
Unbeteiligter Code weglassen
newProxyInstance() 方法
Das obige ist der detaillierte Inhalt vonAnalyse zum Prinzip des dynamischen Proxys in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!