java反射调用Service中方法

最近使用反射获取对象,并调用方法时,无法获取到spring中自动注入的对象。

Class<?> cls = Class.forName(className);
Object obj = cls.newInstance();
Method method = cls.getDeclaredMethod(methodName, Integer.class);

method 为Service里的方法,Service中注入了Dao层对象,反射调用此方法是,没有正确获取注入对象,即spring实例没有生效。故调整思路,用Spring中getBean的方式获取实例。

//获取当前上下文环境,spring容器
WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext(); 
//获取类实例
Class<?>  cls = wac.getBean(className).getClass();
//获取执行方法
Method m = cls.getDeclaredMethod(methodName,Integer.class);

正解。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,958评论 19 139
  • 这部分主要是开源Java EE框架方面的内容,包括Hibernate、MyBatis、Spring、Spring ...
    杂货铺老板阅读 1,433评论 0 2
  • 曾几何时,每当想起我们心中的那一份梦想就热血澎湃,怀着难以自抑的激动着进入梦乡,第二天一觉睡到太阳晒到屁股或者为上...
    野度无人阅读 268评论 0 1
  • 对于初学者来说,IOS中的导航栏确实是一个让人困惑的知识点,我开始也是在项目预定的框架下去设置导航栏的一些属性,直...
    myzhing阅读 404评论 0 1
  • (一)梦境 东晋太元八年元月,我仿佛做了一个梦。梦里我到了一个恐怖陌生的地方,那里面沸汤如海烈火成洲,满眼都是被牛...
    糖糖阿锦阅读 268评论 0 2