Is it possible to do something like the following:
public void doStuff(@RequirePrivilege("foo") User user) {
// ...
}
and have it effectively run as if it were the following?
public void doStuff(User user) {
if(!user.hasPrivilege("foo"))
throw new UserHasInsufficientPrivileges(); // this is a RuntimeException
// ...
}
Я знаю, что Spring имеет различные виды поддержки АОП, но лучшее, что я смог найти, это код АОП, который был аннотирован, чтобы он выполнялся до или после определенного метода. Я хочу сделать обратное и аннотировать код, который следует изменить.
В конечном счете, я мог бы просто выполнить описанную выше проверку внутри метода, но способ аннотации предоставляет дополнительную документацию, которая делает очевидным, что пользователю требуется определенная привилегия, без необходимости синхронизировать документацию с кодом.