Изменить @ApiParam на основе пользовательской аннотации AOP - PullRequest
0 голосов
/ 02 июля 2018

У меня довольно простой Аспект

подвергаемый аудит:

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@interface Auditable {}

AuditAspect:

@Aspect
@Service
class Audit {
    @Pointcut("@annotation(Auditable)")
    void auditableDefinition() {
    }

    @Before("auditableDefinition() && execution(* *(..)) && etc.")
    void auditMethod(a bunch of args) {
        // do stuff
    }
}

Это отлично работает. Но у меня есть интерфейс, который выглядит примерно так:

@RequestMapping( method=RequestMethod.GET, .... )
@Auditable
ResponseEntity<Object> get(

    @RequestParam(required = true)
    @ApiParam(value = Constants.MY_CONST, required = true)
    final String name) {

    //
    // Code here
    //
}

RequestParam и ApiParam - вот где мой вопрос. AuditApect обойден флагом true / false в auditMethod, или я могу поместить его в метод auditableDefinition. Есть ли способ изменить требование к параметру в вызове REST в зависимости от того, включен ли аспект или нет? Я совсем не знаю об этом, это унаследованный код.

...