我有很多方法必须对此注释进行注释:
@Override
@PostAuthorize("hasPermission(returnObject.id, 'mypackage.SecuredClazz', 'ADMINISTRATION')")
public MyObject findSectionAById(SomeId id) {
////the code
}
注释甚至更复杂,它包含
hasRole
和不同的hasPermission
条件。许多对象正在实现mypackage.SecuredClazz
并具有ID。结果,我在同一正文中有很多复制粘贴注释:@PostAuthorize("hasPermission(returnObject.id, 'mypackage.SecuredClazz', 'ADMINISTRATION')")
是否可以使用其他注释或其他方式将整个行复制到100种方法中?
最佳答案
您可以创建自己的注释,其中包括描述的注释:
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@PostAuthorize("hasPermission(returnObject.id, 'mypackage.SecuredClazz', 'ADMINISTRATION')"
public @interface SecuredClazzAuthorized { }
用法:
@Override
@SecuredClazzAuthorized
public MyObject findSectionAById(SomeId id) { ... }