From d38980f84b2bd35314bbb2bd0f6dde08dc633df6 Mon Sep 17 00:00:00 2001 From: ehlxr Date: Fri, 28 Jun 2019 20:52:00 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AB=99=E7=82=B9=E6=9B=B4=E6=96=B0=EF=BC=9A20?= =?UTF-8?q?19-06-28=2020:52:00?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resources/idea/go-settings.jar | Bin 50240 -> 50193 bytes src/main/java/me/ehlxr/proxy/Bird.java | 24 ++++++++++ src/main/java/me/ehlxr/proxy/Flyable.java | 11 +++++ src/main/java/me/ehlxr/proxy/Main.java | 42 ++++++++++++++++++ .../me/ehlxr/proxy/MyInvocationHandler.java | 32 +++++++++++++ .../me/ehlxr/rabbitmq/topic/Receiver1.java | 1 + 6 files changed, 110 insertions(+) create mode 100644 src/main/java/me/ehlxr/proxy/Bird.java create mode 100644 src/main/java/me/ehlxr/proxy/Flyable.java create mode 100644 src/main/java/me/ehlxr/proxy/Main.java create mode 100644 src/main/java/me/ehlxr/proxy/MyInvocationHandler.java diff --git a/resources/idea/go-settings.jar b/resources/idea/go-settings.jar index efa0cd3eaaaf1ddfe04b267076130ef6deda772d..c0b7a2be6d8cacd0087134f9818df93fbfbbeb20 100644 GIT binary patch delta 9204 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 diff --git a/src/main/java/me/ehlxr/proxy/Bird.java b/src/main/java/me/ehlxr/proxy/Bird.java new file mode 100644 index 0000000..5f4bad7 --- /dev/null +++ b/src/main/java/me/ehlxr/proxy/Bird.java @@ -0,0 +1,24 @@ +package me.ehlxr.proxy; + +import java.util.Random; + +/** + * @author lixiangrong + * @since 2019-06-28. + */ +public class Bird implements Flyable { + @Override + public void fly() { + System.out.println("Bird is flying..."); + try { + Thread.sleep(new Random().nextInt(1000)); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + + // @Override + // public void run() { + // System.out.println("Bird is running..."); + // } +} diff --git a/src/main/java/me/ehlxr/proxy/Flyable.java b/src/main/java/me/ehlxr/proxy/Flyable.java new file mode 100644 index 0000000..0d45cd8 --- /dev/null +++ b/src/main/java/me/ehlxr/proxy/Flyable.java @@ -0,0 +1,11 @@ +package me.ehlxr.proxy; + +/** + * @author lixiangrong + * @since 2019-06-28. + */ +public interface Flyable { + void fly(); + + // void run(); +} diff --git a/src/main/java/me/ehlxr/proxy/Main.java b/src/main/java/me/ehlxr/proxy/Main.java new file mode 100644 index 0000000..f294eec --- /dev/null +++ b/src/main/java/me/ehlxr/proxy/Main.java @@ -0,0 +1,42 @@ +package me.ehlxr.proxy; + +import java.lang.reflect.Proxy; + +/** + * @author lixiangrong + * @since 2019-06-28. + */ +public class Main { + public static void main(String[] args) { + Flyable proxy = (Flyable) Proxy.newProxyInstance(Flyable.class.getClassLoader(), + new Class[]{Flyable.class}, new MyInvocationHandler(new Bird())); + + // 动态代理会生成类似以下的 Java 代码 + /* + package me.ehlxr.proxy; + + import java.lang.reflect.InvocationHandler; + import java.lang.reflect.Method; + + public class Proxy implements Flyable { + private InvocationHandler handler; + + public Proxy(InvocationHandler handler) { + this.handler = handler; + } + + @Override + public void fly() { + try { + Method method = Flyable.class.getMethod("fly"); + this.handler.invoke(this, method, null); + } catch (Throwable e) { + e.printStackTrace(); + } + } + } + */ + + proxy.fly(); + } +} diff --git a/src/main/java/me/ehlxr/proxy/MyInvocationHandler.java b/src/main/java/me/ehlxr/proxy/MyInvocationHandler.java new file mode 100644 index 0000000..a293dcf --- /dev/null +++ b/src/main/java/me/ehlxr/proxy/MyInvocationHandler.java @@ -0,0 +1,32 @@ +package me.ehlxr.proxy; + +import java.lang.reflect.InvocationHandler; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; + +/** + * @author lixiangrong + * @since 2019-06-28. + */ +public class MyInvocationHandler implements InvocationHandler { + private Bird bird; + + public MyInvocationHandler(Bird bird) { + this.bird = bird; + } + + @Override + public Object invoke(Object proxy, Method method, Object[] args) { + long start = System.currentTimeMillis(); + + try { + method.invoke(bird, args); + } catch (IllegalAccessException | InvocationTargetException e) { + e.printStackTrace(); + } + + long end = System.currentTimeMillis(); + System.out.println("Fly time = " + (end - start)); + return null; + } +} diff --git a/src/main/java/me/ehlxr/rabbitmq/topic/Receiver1.java b/src/main/java/me/ehlxr/rabbitmq/topic/Receiver1.java index 795ceb8..50e8f74 100755 --- a/src/main/java/me/ehlxr/rabbitmq/topic/Receiver1.java +++ b/src/main/java/me/ehlxr/rabbitmq/topic/Receiver1.java @@ -14,6 +14,7 @@ import java.util.concurrent.TimeoutException; * @author lixiangrong * @since 2019-01-22. */ +@SuppressWarnings("ALL") public class Receiver1 { private final static String QUEUE_NAME = "queue_topic2"; private final static String EXCHANGE_NAME = "exchange_topic";