Introdução ao AspectJ
description
Transcript of Introdução ao AspectJ
![Page 1: Introdução ao AspectJ](https://reader036.fdocumentos.tips/reader036/viewer/2022083006/56813e03550346895da7df3e/html5/thumbnails/1.jpg)
Introdução ao AspectJ
Desenvolvimento de Sistemas Orientados a Aspectos
Prof. Rodrigo Ribeiro
![Page 2: Introdução ao AspectJ](https://reader036.fdocumentos.tips/reader036/viewer/2022083006/56813e03550346895da7df3e/html5/thumbnails/2.jpg)
Introdução O que é AspectJ ?
História da linguagem: Da Xerox à IBM. Extensão à linguagem Java para AOP.
Aumenta Java com construções para: Especificar regras de combinação Implementar interesses transversais
Todo programa Java é um programa AspectJ. Compilador AspectJ
Compila arquivos para .class (bytecodes) Qualquer JVM pode executar programas AspectJ
![Page 3: Introdução ao AspectJ](https://reader036.fdocumentos.tips/reader036/viewer/2022083006/56813e03550346895da7df3e/html5/thumbnails/3.jpg)
Introdução Na aula anterior...
Vimos os conceitos de: Interesses transversais. Regras de combinação Combinador
Regras de combinação servem para... Indicar “qual” ação será inserida em “que” ponto do programa
Compilador de AspectJ (combinador) Usa regras de combinação para gerar o sistema Não modifica o código fonte
AspectJ possui dois tipos de combinações Combinações dinâmicas Combinações estáticas
![Page 4: Introdução ao AspectJ](https://reader036.fdocumentos.tips/reader036/viewer/2022083006/56813e03550346895da7df3e/html5/thumbnails/4.jpg)
Introdução Combinação dinâmica
Visível durante a execução do programa Muda o comportamento da execução Combinador insere (ou substitui) código.
Combinação estáticaMuda a estrutura estática do programa
Estrutura de classes e aspectos Inserir métodos / variáveis Modificar hierarquia de herança
![Page 5: Introdução ao AspectJ](https://reader036.fdocumentos.tips/reader036/viewer/2022083006/56813e03550346895da7df3e/html5/thumbnails/5.jpg)
Introdução Ponto de junção (joinpoint)
Ponto identificável na execução do programa Ponto de atuação (pointcut)
Especifica quais pontos de junção são selecionados
Sugestão (advice)Trecho de código que será executado em um
ponto de junção selecionado por um ponto de atuação
![Page 6: Introdução ao AspectJ](https://reader036.fdocumentos.tips/reader036/viewer/2022083006/56813e03550346895da7df3e/html5/thumbnails/6.jpg)
Introdução Introdução
Combinações estáticas Declarações de tempo de compilação
AvisosErros
AspectoPontos de atuação, sugestões, classes,
variáveis, métodos...