Closed shuigedeng closed 2 years ago
不晓得你是怎么代理的controller, 我尝试用aop代理了一下似乎没有这样的问题
Class<?> aClass = object.getValue().getClass(); 改为 Class<?> aClass = ClassUtils.getUserClass(object.getValue().getClass());
随便写个AOP,拦截到controller的方法,就能复现这个问题。@NoBugBoy
1.1.5解决了这个问题
如果controller被cglib代理 那么获取不到controller注解信息
ScanControllerSwagger scan() 方法 // 组装swagger-api Class<?> aClass = object.getValue().getClass(); // 如果有外层路径需要加上 String outPath = buildBaseUrl(aClass);
public String buildBaseUrl(Class<?> aClass) { String basePath = ""; if (aClass.isAnnotationPresent(RequestMapping.class)) { RequestMapping annotation = aClass.getAnnotation(RequestMapping.class); if (annotation.value().length > 0) { basePath = annotation.value()[0]; } } return basePath; } 如果controller被代理了 那么outPath永远为空字符串 还应该通过 aClass.getSuperClass().isAnnotationPresent(RequestMapping.class) 判断