Spring管理的bean反射执行方法

//获取到bean serviceBean的类 com.a.DemoService
DemoService serviceBean = (DemoService) SpringContextsUtil.getBean("demoService");
// serviceBean.getClass()就变成代理类型了 class com.sun.proxy.$Proxy27
//所以在代理类型里面找selectSysUserByUserId方法就报错NoSuchMethod
Method mh = ReflectionUtils.findMethod(serviceBean.getClass(), "selectSysUserByUserId",new Class[]{Object.class} );

Object ret = ReflectionUtils.invokeMethod(mh,serviceBean,obj);


要怎么解决,获取spring管理的bean后,取得class还是原来的class

定义了一个service com.a.DemoService
通过工具获取该bean,但是该bean.getClass()与com.a.DemoService不一致,而是个代理,所以没法用发射,怎么解决

jeck猫
浏览 1597回答 2
2回答

慕后森

你都拿到代理对象了还用反射获取方法干啥,直接拿对象调用方法啊

临摹微笑

对,获取代理对象,直接用对象调方法就行
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java