Spring中不用注入如何正确调用service方法

版权声明:有错误希望指正,谢谢! https://blog.csdn.net/wenpeng12/article/details/70666378

spring问题总结

问题描述:

某种业务场景用到Java反射去确定调用哪个业务层
与调用哪个方法。但是利用传统的反射机制会
脱离spring容器,dao层并没有实例化,dao操作完全
执行不了
利用先获取spring容器,再从spring中获取bean的实例为正解:

代码:

//获取当前上下文环境,spring容器
WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext(); 
//获取类实例
Class<?>  cls = wac.getBean(className).getClass();
//获取执行方法
Method m = cls.getDeclaredMethod(functionName,String.class);
//反射调用方法,methodParam:方法参数
amount = (BigDecimal) m.invoke(wac.getBean(className),methodParam);

猜你喜欢

转载自blog.csdn.net/wenpeng12/article/details/70666378