javaee论坛

普通会员

225648

帖子

345

回复

359

积分

楼主
发表于 2019-10-30 16:58:37 | 查看: 32 | 回复: 0

1、测试代码。关于springboot、swagger-ui和反射的相关知识,可以查看我的其他文章。Java反射机制和SpringBootswagger2的使用。

packagecom.zxj.reptile.api.test;importcom.zxj.reptile.api.AjaxJson;importio.swagger.annotations.Api;importio.swagger.annotations.ApiImplicitParam;importio.swagger.annotations.ApiImplicitParams;importio.swagger.annotations.ApiOperation;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.context.ApplicationContext;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RequestMethod;importorg.springframework.web.bind.annotation.RequestParam;importorg.springframework.web.bind.annotation.RestController;importjava.lang.reflect.Method;@Api(value="test",tags="测试Api")@RestController@RequestMapping("test")publicclassTestApi{@AutowiredprivateApplicationContextapplicationContext;@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)publicAjaxJsonreflexTest(@RequestParam(value="className")StringclassName,@RequestParam(value="methodName")StringmethodName){AjaxJsonajaxJson=newAjaxJson<>();try{Class<?>aClass=Class.forName(className);Objectobj=applicationContext.getBean(aClass);Methodmethod=aClass.getMethod(methodName);Stringstr=(String)method.invoke(obj);ajaxJson.setData(str);}catch(Exceptione){e.printStackTrace();ajaxJson.error("失败:"+e.getMessage());}returnajaxJson;}publicvoidtest(){System.out.println("Iamjustatest");}}

2、swagger测试接口,输入类名为:com.zxj.reptile.api.test.TestApi,输入方法名为test。就可以在SpringBoot中自动注入bean,并调用其方法。


您需要登录后才可以回帖 登录 | 立即注册

触屏版| 电脑版

技术支持 历史网 V2.0 © 2016-2017