通过反射调用Spring容器中的类方法满足依赖注入和切面编程的需求
首先获取到容器中的实例
** * @author by xuchenggang * @Classname SpringContextUtil * @Description TODO * @date 2019/12/20 8:53 */ @Component public class SpringContextUtil implements ApplicationContextAware { /** * Spring应用上下文环境 */ private static ApplicationContext applicationContext; /** * 实现ApplicationContextAware接口的回调方法,设置上下文环境 * * @param applicationContext */ @Override public void setApplicationContext(ApplicationContext applicationContext) { SpringContextUtil.applicationContext = applicationContext; } /** * @return ApplicationContext */ public static ApplicationContext getApplicationContext() { return applicationContext; } /** * 获取对象 * * @param name * @return Object * @throws BeansException */ public static Object getBean(String name) throws BeansException { return applicationContext.getBean(name); } public static Object getBean(String name, Class cla) throws BeansException { return applicationContext.getBean(name, cla); } }
Class paramType = Class.forName(paramTypeStr); Class clazz = Class.forName(className); String simpleName = clazz.getSimpleName(); String firstLowerName = simpleName.substring(0, 1).toLowerCase() + simpleName.substring(1); //通过此方法去Spring容器中获取Bean实例 Object obj = SpringContextUtil.getBean(firstLowerName, clazz); Method method = obj.getClass().getDeclaredMethod(methodName, paramType); method.invoke(obj, JSON.parseObject(param, paramType));

浙公网安备 33010602011771号