版权声明:有错误希望指正,谢谢! 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);