netty+动态代理项目(1):反射service实体类时,Dao为null的问题解决思路与方案。

新手码农的第一篇文章,有不对的地方,希望各位大哥指点。

在学习netty+动态代理的时候,出现了很多问题,记录一下。我就先讲一下问题是哪些,再去大概的讲一下我的项目吧,哈哈哈哈。
整个项目流程大概是这样的:

测试 netty客户端 netty服务端 调一个service请求 客户端进入代理invoke发送参数 服务端反射service名字调用方法处理数据 客户端接收数据直接返回 测试 netty客户端 netty服务端

问题一:反射service实体类时,里面的Dao为null

在这里插入图片描述

开始一直以为是spring没有注入,开始排查。
1.看pom.xml文件依赖是否正确。
2.看Dao上面的@Repository和启动类上的@SpringBootApplication
@MapperScan(“com.erayt.remoting.example.dao”)有没有写错。
3.不启动netty,在测试里,自己调用发现Dao不是为null的,把整个流程理了一遍,觉得反射出问题了,看了一下,发现做成静态方法的代理了。

原错误代码

	Class clazz = SpringUtils.getBean(service).getClass();
	Method method = clazz.getMethod(action, type);
    Object obj = clazz.newInstance();
    vaules = method.invoke(obj, data);

修改后代码

	Class clazz = SpringUtils.getBean(service).getClass();	
	Method method = clazz.getMethod(action, type);
    Object obj = SpringUtils.getBean(clazz);
    vaules = method.invoke(obj, data);

有帮助的话,来个三连吧!!!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值