У меня довольно простой Аспект
подвергаемый аудит:
@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 в зависимости от того, включен ли аспект или нет? Я совсем не знаю об этом, это унаследованный код.