terça-feira, 21 de julho de 2015

Spring OAP

Hoje precisei criar um interceptor.

Queria que antes e depois da execução de determinados métodos fosse chamado um Rest.
Também queria que se o método lançasse uma exception, chamasse outro Rest.

Pensei em annotation processor... orientação a aspectos com o aspectj... no fim resolvi com o Spring AOP.

Resumindo, você precisa:

Criar uma annotation para anotar no método que você quer interceptar.
Criar um Advisor para ler os métodos que tem a annotation.
Criar o interceptador para inserir o comportamento que você quer.
Alterar o applicationContext.xml e colocar o component-scan com o pacote onde está seu Advisor e adicionar o bean DefaultAdvisorAutoProxyCreator.

Com isso você consegue apenas colocando uma anotação no seu método fazer algo antes dele ser chamado, depois, ou tratar exceptions por exemplo.

Você pode ver o código nesse meu projeto no GitHub: https://github.com/adrianoschmidt/springaop

Mais detalhes em:
http://blog.javaforge.net/post/76125490725/spring-aop-method-interceptor-annotation

Abraço!!
Adriano Schmidt

Nenhum comentário:

Postar um comentário