我的方面很简单
可审核:
@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是我的问题所在。在auditMethod
中使用true / false标志绕过了AuditApect,也可以在auditableDefinition
方法中放置它。有没有一种方法可以根据是否启用Aspect来更改REST调用中的参数要求?我对此一无所知,它是继承的代码。