我有很多方法必须对此注释进行注释:

@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) { ... }

08-05 15:46