Olá pessoal!
Bom, andei lendo algumas coisas, refazendo outras, e estou fazendo um teste aqui, gostaria de contar com a opinião de vocês para que considerem esse método como legivel ou não (ele fica em uma classe de repositório.
@Override
@Transactional
@Loggable
@PreAuthorize("@privilegesBean.can(principal, 'action', 'requiredRole', #o)")
public void doSomething(@NotNull Object o) {
persistence.save(o);
}
@Transactional ? Spring
@PreAuthorize ? SpringSecurity, serve para antes de executar o método, verificar se o usuário possui a permissão, passando para isso alguns parametros, principal por exemplo, é o objeto do login do usuário
@Loggable ? Anottation minha mesmo, que loga o início e execução do método, tal como captura se estourar qualquer exceção.
@NotNull ? Outra annotation minha, se o Object ?o? estiver nulo, estoura nullpointerException.
Criando um método assim, me parece que vou conseguir isolar todas as regras na camada correta, sem ter que contar com alguma regra perdida da view. Ou seja, assim conseguiria trocar 100% a view sem perder qualquer regra de negócio.
Me veio na cabeça que está com muitas annotations, mas não sei se isso é problema, pra mim não é. E vocês, o que acham? Está bom assim? E o que vcs acham que eu passe para as Interfaces algumas dessas annotations?
Valeu!