• Gred
    2019-10-24
    1.改用CGLib动态代理,增加多接口多方法支持。
    2.增加Object序列化类以及默认序列化类,增加对多入参的序列化支持。
    借花献佛了,麻烦老师指导下
    https://github.com/Gred01/simple-rpc-framework

    作者回复: 我是第一个Star这个项目的人哦!

     2
     6
  • leslie
    2019-10-11
    明确的知道自己的问题后再补开发语言那块的漏、、、课程拉了3节:看来一个人的精力还是有限,完全不拉的跟了30节后面还是拉下了课程,动手这块只能利用双休日再争取补上一点了。。。
    
     2
  • A9
    2019-10-10
    解除参数和返回值的限制,意味着序列化模块要支持任意类,这就需要实现一套通用的序列化协议或在serialize模块中实现用到的所有类型。假设依旧使用自定义协议,并且用到的所有类型均实现了序列化接口。需要进行如下修改:
      1.DynamicStubFactory#createStub的Method处理,使用getMethods获取method数组,for循环处理method而不是直接去数组下标0
      2.把DynamicStubFactory的类代码模板进行拆分,分为类模板和方法模板,先生成所有method的代码,再以此生成整个类的代码
      3.定义一个新的协议结构用来存放函数的参数,用此类型代替RpcRequest的serializedArguments变量,并修改RpcRequest的序列化相关函数
      4.修改RpcRequestHandler#handle:52行内根据rpcRequest去取得实际method的函数,获取任意参数个数和类型的对应函数
    展开
    
     2
  • wzzJike
    2019-10-10
    java的很多框架使用的都是jdk的动态代理吧,能获取到代理类,调用方法,参数信息

    作者回复: 是这样的。

    
     2
  • 亚洲舞王.尼古拉斯赵...
    2019-11-07
    嘻嘻,开心,成功支持任意数目方法,任意返回值类型,接口成功调用并正确工作,其实这个作业就是一个循环遍历的过程,然后将每个方法的返回值,方法名替换的过程
    
     1
  • Switch
    2019-11-02
    基本类型暂未实现,
    https://github.com/Switch-vov/simple-rpc-framework/tree/feature-stub

    作者回复: 大致浏览一下代码,思路是没问题的,非常棒!

    
     1
  • Khirye
    2019-12-31
    老师,我想请教一个问题。您的文章中写道:“那能不能用一个第三方来创建这个实现类呢?也是不行的,即使用一个第三方类来创建实现,那依赖关系就变成了:调用方依赖第三方类,第三方类依赖实现类,调用方还是间接依赖实现类,还是没有解耦”,那么请问SPI跟“一个第三方来创建实现类”这个行为本质上有什么区别呢。我的理解是SPI本质上也是“创建”了一个类。还望老师解惑🙏

    作者回复: SPI本质上是动态创建依赖接口的实现类,解决问题的就是“解耦”接口的调用方对接口实现类的依赖。

     1
    
我们在线,来聊聊吧