Resultados e discussão
Foi criado um Aspecto, uma annotation para
definí-lo, e um MethodInterceptor para tratá-la. Por
meio disso, a utilização desse aspecto dentro de
uma classe gerenciada pelo Guice se torna simples e
“limpa”, sendo necessário apenas anotar um
método com RequiresPermission, conforme
a Figura 1. Assim, o MethodInterceptor criado
interceptará o método e retornará uma exceção
caso o usuário não possua a permissão WRITE.
A principal vantagem de se utilizar o Guice-AOP
é a facilidade de uso. Enquanto em outras soluções
no mercado, como o pioneiro AspectJ, é necessário
aprender uma micro-linguagem considerada
complexa para a grande maioria, o Guice-AOP visa
prover 20% do AOP que é utilizado em 80% dos
casos, de uma forma relativamente fácil
(VANBRABANT, 2008).
O código completo da API Lila-AOP pode ser
consultado em http://github.com/caarlos0/lila-aop.
Referências
GOOGLE CODE, Guice. 200-. Disponível em
. Acesso em 10
de maio de 2012 às 12:30.
VANBRABANT, Robbie; Google Guice: Agile Lightweight
Dependency Injection Framework (Firstpress), Apress,
2008.
ONJAVA, Overview of Aspect Oriented Programming.
2004. Disponível em
. Acesso
em 11 de maio de 2012 às 16:29.
AOP ALLIANCE, AOP Alliance – Presentation. 2004.
Diponível em .
Acesso em 11 de maio de 2012 às 16:02.
PROGRAMAÇÃO ORIENTADA A ASPECTOS COM GUICE-AOP
BECKER, Carlos Alexandro1
; GREGOL, Régis Eduardo Weizenmann2
; SCHÜTZ, Fernando3
1,2,3
Tecnologia em Análise e Desenvolvimento de Sistemas – UTFPR – Medianeira/PR
[email protected]
;
[email protected]
;
[email protected]
Universidade Tecnológica Federal do Paraná
Campus Medianeira
Núcleo de Ciência da Computação
Medianeira in Technology – III Meditec
Introdução
A AOP (Aspect Oriented Programming), segundo
a ONJAVA (2004), complementa a programação OO
(Orientada a Objetos), permitindo que o
desenvolvedor possa modificar dinamicamente o
modelo OO estático. A AOP fornece, segundo a AOP
ALLIANCE (2004), uma melhor solução para muitos
problemas se comparado com outras tecnologias
existentes.
O Google Guice, segundo o GOOGLE CODE (200-),
diminui a necessidade de criar factories e de usar a
palavra-chave new em projetos Java. O principal
objetivo do Guice é tornar seu código fácil de testar
e depurar, bem como agilizar o desenvolvimento
(GOOGLE CODE, 200-). O Guice possui também um
módulo para AOP, que utiliza e facilita o uso da API
(Application Programming Interface) do AOP
Alliance Project (VANBRABANT, 2008).
Material e métodos
• Segundo VANBRABANT (2008), o ato de replicar
código, acaba gerando mais código, e,
consequentemente, mais bugs. Com o intuito de
demonstrar como o framework Google Guice auxilia
nos processos de reutilização, desenvolveu-se uma
API para validação de permissões de usuários e/ou
grupos de usuários em aplicações Java, tendo em
vista que este é um aspecto muito comum em
diversos tipos de aplicações, e costuma ser
resolvido replicando código de uma classe para
outra.