版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
1、测试代码。关于springboot、swagger-ui和反射的相关知识,可以查看我的其他文章。Java 反射机制和SpringBoot swagger2的使用。
package com.zxj.reptile.api.test;
import com.zxj.reptile.api.AjaxJson;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.lang.reflect.Method;
@Api(value = "test", tags = "测试Api")
@RestController
@RequestMapping("test")
public class TestApi {
@Autowired
private ApplicationContext applicationContext;
@ApiOperation(value = "测试", notes = "测试")
@ApiImplicitParams({
@ApiImplicitParam(name = "className", value = "类名(包含路径)", dataType = "String", paramType = "query"),
@ApiImplicitParam(name = "methodName", value = "方法名", dataType = "String", paramType = "query")
})
@RequestMapping(value = "reflexTest", method = RequestMethod.GET)
public AjaxJson reflexTest(@RequestParam(value = "className") String className,
@RequestParam(value = "methodName") String methodName) {
AjaxJson ajaxJson = new AjaxJson<>();
try {
Class<?> aClass = Class.forName(className);
Object obj = applicationContext.getBean(aClass);
Method method = aClass.getMethod(methodName);
String str = (String) method.invoke(obj);
ajaxJson.setData(str);
} catch (Exception e) {
e.printStackTrace();
ajaxJson.error("失败: " + e.getMessage());
}
return ajaxJson;
}
public void test() {
System.out.println("I am just a test");
}
}
2、swagger测试接口,输入类名为:com.zxj.reptile.api.test.TestApi,输入方法名为test。就可以在SpringBoot中自动注入bean,并调用其方法。