Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Programação Orientada à Aspectos com Guice-AOP

Programação Orientada à Aspectos com Guice-AOP

7ef3cd04888c6d17f34d43e29ec3d46f?s=128

Carlos Alexandro Becker

September 19, 2012
Tweet

Transcript

  1. 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 <http://code.google.com/p/google-guice>. 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 <http://onjava.com/onjava/2004/01/14/aop.html>. Acesso em 11 de maio de 2012 às 16:29. AOP ALLIANCE, AOP Alliance – Presentation. 2004. Diponível em <http://aopalliance.sourceforge.net/>. 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 caarlos0@gmail.com1 ; regiseduardogregol@gmail.com2 ;fschutz@gmail.com3 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.