请问我像动态地修改@ApiOperation("远程测试")注解的value的值,然后怎么在swagger中呈现出来
@ApiOperation("远程测试") @GetMapping("/test") public String test() throws NoSuchMethodException, NoSuchFieldException, IllegalAccessException { Method method = this.getClass().getMethod("test"); ApiOperation apiOperation = method.getAnnotation(ApiOperation.class); //获取 foo 这个代理实例所持有的 InvocationHandler InvocationHandler handler = Proxy.getInvocationHandler(apiOperation); // 获取 AnnotationInvocationHandler 的 memberValues 字段 Field hField = handler.getClass().getDeclaredField("memberValues"); // 因为这个字段事 private final 修饰,所以要打开权限 hField.setAccessible(true); // 获取 memberValues Map memberValues = (Map) hField.get(handler); // 修改 value 属性值 memberValues.put("value", "增加"); String s = apiOperation.value(); log.debug(":::{}", s); return "success"; }
我更改了@ApiOperation("远程测试")里的value值为”增加“,可是刷新doc.html页面注解并没有改变
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
接着说一下,注解是在启动过程中就会解析形成一系列的文档描述对象。
实际上请求/v2/api-docs是通过获取DocumentationCache中缓存的文档对象生成的json结构返回,故可通过以下注入之后获取文档描述,自己找到对应描述修改即可。