2015-11-27 1 views
1

Требования - В существующем проекте мы хотим представить документацию для хранения api для отдыха.Добавить аннотацию ко всем контроллерам в игровой инфраструктуре с использованием глобального класса или отражения в Java

Задача - Мы не можем модифицировать каждый контроллер и способ.

Итак, ищем декоратор, который автоматически добавит аннотацию ко всему классу контроллера, а также добавит аннотацию к методам в зависимости от типа запроса.

Пробовал с отражениями 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); 
} 
+0

Возможный дубликат [http://stackoverflow.com/questions/1635108/adding-java-annotations-at-runtime](http://stackoverflow.com/questions/1635108/adding-java-annotations-at-runtime) – Mikey

+0

Спасибо, используя javassist, я могу добавлять аннотации. Но чванство не работает. Любые предложения по внедрению swagger во время выполнения. – Div

ответ

0

Swagger UI работает на основе JSON, который он получает с сервера. Итак, вместо добавления аннотаций swagger во время выполнения было бы лучше дать JSON из статического файла, который документирует все сервисы и обычаи.

Смежные вопросы