新手码农的第一篇文章,有不对的地方,希望各位大哥指点。
在学习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);