package com.example.demo.modules.web;
import com.example.demo.modules.service.KyhQuestionService;
import com.example.demo.modules.util.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
/**
* 查询问题接口
*/
@RestController
@RequestMapping("/api")
public class kyhQuestionController {
@Autowired
private KyhQuestionService kyhQuestionService;
@RequestMapping("/queryQuestionList")
public Result queryQuestionList(String page,String pageSize,String questionName){
Result result=new Result();
result = kyhQuestionService.queryQuestionList(page,pageSize,questionName);
return result;
}
/**
* 测试根据字符串获取该类,并执行该类下面得方法,反射原理
* @param args
*/
public static void main(String[] args){
String className = "com.example.demo.modules.web.test";
String methodName = "run";
try {
Class clz = Class.forName(className);
//获得该类的包名
System.out.println(clz.getPackage());;
//
Object obj = clz.newInstance();
//获取方法
Method m = obj.getClass().getDeclaredMethod(methodName, String.class);
//调用方法
String result = (String) m.invoke(obj, "aaaaa");
System.out.println(result);
}catch (InstantiationException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
主要记录如何通过类名,找到他所属的包下面其他的类,以及根据类名和该类的某个方法名,进行远程执行该方法