Java 字节码级别方法调用 TODAY Method Invoker

GPL
Java
跨平台
2019-11-25
TAKETODAY

【年终提升】2019尾声,来 OSC·年终盛典收割技术干货,get新技能!>>>

TODAY Method Invoker 是一个 Java 字节码级别方法调用。

使用说明

public class TestHandlerInvoker {

	public static void main(String[] args) throws Exception {

        System.setProperty("cglib.debugLocation", "D:/debug");
        {
            final Method main = Bean.class.getDeclaredMethod("main");
            final Invoker mainInvoker = MethodInvokerCreator.create(main);
            mainInvoker.invoke(null, null);
        }
        {
            final Method test = Bean.class.getDeclaredMethod("test", short.class);
            final Invoker mainInvoker = MethodInvokerCreator.create(test);
            mainInvoker.invoke(null, new Object[] { (short) 1 });
        }

        final Invoker create = MethodInvokerCreator.create(Bean.class, "test");
        create.invoke(new Bean(), null);
        final Invoker itself = MethodInvokerCreator.create(Bean.class, "test", Bean.class);
        itself.invoke(new Bean(), new Object[] { new Bean() });
    }

    public static class Bean {

        public static void test(short i) throws Throwable {
            System.err.println("static main " + i);
        }

        protected static void main() throws Throwable {
            System.err.println("static main");
        }

        public void test() throws Throwable {
            System.err.println("instance test");
        }

        void test(Bean itself) {
            System.err.println("instance test :" + itself);
        }
    }
}

 

的码云指数为
超过 的项目
加载中

评论(0)

暂无评论

暂无资讯

暂无问答

【迪士尼源码下载】分享

ProxyFactory ProxyFactory Hierarchy: AbstractProxyFactory public <T> T getProxy(Invoker<T> invoker) throws RpcException { Class<?>[] interfaces = null; // createProxy时创建invok...

2019/04/30 14:00
0
0
聊聊dubbo的Invoker select

序 本文主要研究一下dubbo的Invoker select InvokerInvocationHandler.invoke dubbo-2.7.1-sources.jar!/org/apache/dubbo/rpc/proxy/InvokerInvocationHandler.java public class InvokerIn...

2019/06/16 21:50
28
0
Dubbo消费者

DubboProtocol生成的消费者

2016/08/20 16:28
92
0
dubbo实现简析(2)

接上文,看export()的代码: checkInterfaceAndMethods(interfaceClass, methods); checkRef(); checkApplication(); checkRegistry(); checkProtocol(); checkStubAndMock(interfaceClass);...

2015/12/27 23:19
24
0
dubbo源码学习笔记----RPC

### RpcContext 整个RpcContext通过ThreadLocal维持。 ``` public class RpcContext { private static final ThreadLocal LOCAL = new ThreadLocal() { @Override protected RpcContext init...

2018/01/13 21:50
65
0
Dubbo源码解析实战 - 路由Router的奥秘

集群容错中的第二个关键词Router,中文意思就是路由 前端的路由和后端的路由他们是不同的,但是思想是基本一致的. 鉴于很多技术文章都有一个诟病,就是只讲概念,却不讲应用场景,其实Router在应用...

2019/11/25 23:43
17
0
Hadoop RPC整个使用流程——以DataNode向NameNode注册为例

Hadoop RPC整个使用流程——以DataNode向NameNode注册为例 在HDFS实现过程中DataNode class中有一个成员变量namenode,其类型是DatanodeProtocol。namenode可以看作是远程NameNode服务器的一...

2013/09/25 15:39
87
0
dubbo源码分析系列(3)服务的引用

#1 系列目录 - [dubbo源码分析系列(1)扩展机制的实现](http://my.oschina.net/pingpangkuangmo/blog/508963) - [dubbo源码分析系列(2)服务的发布](http://my.oschina.net/pingpangkuang...

2015/10/12 08:37
4.8K
2
聊聊dubbo的CacheFilter

序 本文主要研究一下dubbo的CacheFilter CacheFilter dubbo-2.7.2/dubbo-filter/dubbo-filter-cache/src/main/java/org/apache/dubbo/cache/filter/CacheFilter.java @Activate(group = {CON...

2019/06/27 22:44
25
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部