springmvc ctrl 方法执行前统一执行一个自定义方法,并且接受的参数与具体要执行的方法样

2025-04-28 16:14:24
推荐回答(1个)
回答1:

还是不太明白   大致上  当你执行 ctrl  方法时候 就调用 一下 你的自定义方法就可以了 如果是参数的话 可以 通过JSON 传入多个 比如   在一个JSON串中拼接 一个类名 和方法名 然后 在 controller 拿到JSON  从 JSON 拿到  类名  与方法名 获得实际类与方法的代码如下:


package test;
import java.lang.reflect.Method;
public class Test {
//获得类和方法
    public static void main(String[] args) throws Exception {
      //类名
      String className = "test.test1";
      //方法名
       String methodName = "sayHello";
       //加载类
       Class clz = Class.forName(className);
       //  获得类
       Object obj = clz.newInstance();
       //获取方法  那个String.class 就是参数类型
       Method m = obj.getClass().getDeclaredMethod(methodName, String.class);
       //调用方法  
       String  result = (String) m.invoke(obj, "aaa");
       System.out.println(result);
      }
    }
    
    //测试类
    package test;
    public class test1 {
      public String sayHello(String s){
       System.out.println(s);
       return "hello!";
      }
    }
    
    /**以下是输出结果
        aaa
        hello!
    */

总的来讲 就是通过 反射机制  具体 怎么实现 还得看自己  我这只是个例子