要求 - 在现有项目中,我们希望为 REST API 文档引入 swagger。
问题 - 我们无法修改每个 Controller 和方法。
因此,寻找一个装饰器,它会自动将注释添加到所有 Controller 类,并且还会根据请求类型为方法添加注释。
尝试使用 java 反射,但找不到任何添加注释的选项。
public <A> A getControllerInstance(Class<A> clazz) {
Annotation[] annotations = clazz.getAnnotations();
// This check is used to suppress any annotation if it is not injected
// using spring DI. Example Security.Authenticated.
if (clazz.isAnnotationPresent(Component.class))
return ctx.getBean(clazz);
else
return null;
}
public Action onRequest(Request request, Method actionMethod) {
System.out.println("before each request..." + request.toString());
Object[] obj = actionMethod.getAnnotations();
return super.onRequest(request, actionMethod);
}
最佳答案
Swagger UI 基于从服务器获取的 JSON 工作。 因此,与其在运行时添加 swagger 注释,不如从记录所有服务和用法的静态文件中提供 JSON。
关于java - 使用全局类或java反射为play框架中的所有 Controller 添加注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33958176/