AOP – AspectJ 1.5.4
Programação Orientada a Aspectos
11
Conceitos Básicos sobre AOPConceitos Básicos sobre AOP
ObjetivosObjetivos
Conhecer os conceitos básicos sobre
AOP/AspectJ
Conhecer os conceitos: Concern e
Crosscuting concern
Conhecer a estrutura básica de um aspecto
Conhecer os pilares do AspectJ
Conhecer o mecanismo padrão de weaving
do AspectJ
Conceitos BásicosConceitos Básicos
Xerox Park
AspectJ
2001
Eclipse
AOP
Concerns
Crosscuting concerns
Extensão do Java
Conceitos BásicosConceitos Básicos
Desenvolvimento
Muitas questões devem ser consideradas
Problemas:
 Acoplamento com 3rd-party framewroks
 Mais tempo para desenvolver um componente
 Mais dificil de fazer manutenções
 Mais propenso a erros
 Menos coeso
 Mais difícil de migrar
 Menos legível
Concerns vs Crosscuting concernsConcerns vs Crosscuting concerns
Diferenciando Concerns de Crosscuting concerns
Concerns vs Crosscuting concernsConcerns vs Crosscuting concerns
Concerns vs Crosscuting concernsConcerns vs Crosscuting concerns
• Dilema
• Under design vs Over design
Pilares do AspectJPilares do AspectJ
• Join point
• Pointcut
• Advice
• before
• after
• around
• Inner-type declaration
AspectsAspects
package <<Nome do pacote de existir>>;
import <<Import java/AspectJ se existir>>;
public aspect <<Nome do aspecto padrão java >> {
// Pointcuts
// Advices
}
Mecanismos de WeavingMecanismos de Weaving
• Modificar a JVM
• Compile time
• Load Time
Mecanismos de WeavingMecanismos de Weaving
• Modificar a JVM:
• Vantagens:
• Suporte completo ao AspectJ
• Informações dos aspectos separadas
• Mais performático
• Desvantagens:
• Perda de portabilidade
• Fere as especificação de bytecodes
• Compilado de mudar as especificação java
Mecanismos de WeavingMecanismos de Weaving
•Load Time:
• Vantagens:
• Modifica o código somente quando é
carregado, assim carregando sob-
demanda.
• Desvantagens:
• Mais lento
• Dificuldades de fazer otimizações
Mecanismos de WeavingMecanismos de Weaving
•Compile time
• Vantagens:
• Portável, pois não modifica o bytecode
• Mais performático, aplicação Java como
qualquer outra
• Mais fácil de implementar
• Desvantagens:
• Possui mais limitações: Ligar aspectos em
tempo de compilação.
• Dificuldade em disernir código Java e
código AspectJ depois do código ser
gerado.
Mecanismos de WeavingMecanismos de Weaving
Você aprendeu a...Você aprendeu a...
Conceitos básicos sobre AOP/AspectJ
Concern e Crosscuting concerns
A estrutura básica de um aspecto
Pilares do AspectJ
Mecanismos weaving do AspectJ
ExercíciosExercícios
1) Descreva com suas palavras o conceito de
AOP/AspectJ.
2) Descreva para que serve: Join point,Pointcut,
Advice e Iner-type declarations
3) Cite 3 vantagens de usar AOP
4) Descreva com suas palavras a diferença entre
crosscuting e concern.
5) Descreva com suas palavras como funciona o
mecanismo de weaving do AspectJ. Cite 2
vantagens.

Aop Aspect J 1.5.4 Capitulo 01

  • 1.
    AOP – AspectJ1.5.4 Programação Orientada a Aspectos
  • 2.
    11 Conceitos Básicos sobreAOPConceitos Básicos sobre AOP
  • 3.
    ObjetivosObjetivos Conhecer os conceitosbásicos sobre AOP/AspectJ Conhecer os conceitos: Concern e Crosscuting concern Conhecer a estrutura básica de um aspecto Conhecer os pilares do AspectJ Conhecer o mecanismo padrão de weaving do AspectJ
  • 4.
    Conceitos BásicosConceitos Básicos XeroxPark AspectJ 2001 Eclipse AOP Concerns Crosscuting concerns Extensão do Java
  • 5.
    Conceitos BásicosConceitos Básicos Desenvolvimento Muitasquestões devem ser consideradas Problemas:  Acoplamento com 3rd-party framewroks  Mais tempo para desenvolver um componente  Mais dificil de fazer manutenções  Mais propenso a erros  Menos coeso  Mais difícil de migrar  Menos legível
  • 6.
    Concerns vs CrosscutingconcernsConcerns vs Crosscuting concerns Diferenciando Concerns de Crosscuting concerns
  • 7.
    Concerns vs CrosscutingconcernsConcerns vs Crosscuting concerns
  • 8.
    Concerns vs CrosscutingconcernsConcerns vs Crosscuting concerns • Dilema • Under design vs Over design
  • 9.
    Pilares do AspectJPilaresdo AspectJ • Join point • Pointcut • Advice • before • after • around • Inner-type declaration
  • 10.
    AspectsAspects package <<Nome dopacote de existir>>; import <<Import java/AspectJ se existir>>; public aspect <<Nome do aspecto padrão java >> { // Pointcuts // Advices }
  • 11.
    Mecanismos de WeavingMecanismosde Weaving • Modificar a JVM • Compile time • Load Time
  • 12.
    Mecanismos de WeavingMecanismosde Weaving • Modificar a JVM: • Vantagens: • Suporte completo ao AspectJ • Informações dos aspectos separadas • Mais performático • Desvantagens: • Perda de portabilidade • Fere as especificação de bytecodes • Compilado de mudar as especificação java
  • 13.
    Mecanismos de WeavingMecanismosde Weaving •Load Time: • Vantagens: • Modifica o código somente quando é carregado, assim carregando sob- demanda. • Desvantagens: • Mais lento • Dificuldades de fazer otimizações
  • 14.
    Mecanismos de WeavingMecanismosde Weaving •Compile time • Vantagens: • Portável, pois não modifica o bytecode • Mais performático, aplicação Java como qualquer outra • Mais fácil de implementar • Desvantagens: • Possui mais limitações: Ligar aspectos em tempo de compilação. • Dificuldade em disernir código Java e código AspectJ depois do código ser gerado.
  • 15.
  • 16.
    Você aprendeu a...Vocêaprendeu a... Conceitos básicos sobre AOP/AspectJ Concern e Crosscuting concerns A estrutura básica de um aspecto Pilares do AspectJ Mecanismos weaving do AspectJ
  • 17.
    ExercíciosExercícios 1) Descreva comsuas palavras o conceito de AOP/AspectJ. 2) Descreva para que serve: Join point,Pointcut, Advice e Iner-type declarations 3) Cite 3 vantagens de usar AOP 4) Descreva com suas palavras a diferença entre crosscuting e concern. 5) Descreva com suas palavras como funciona o mecanismo de weaving do AspectJ. Cite 2 vantagens.