SlideShare una empresa de Scribd logo
1 de 17
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.

Más contenido relacionado

Similar a Aop Aspect J 1.5.4 Capitulo 01

Aumento de Produtividade no Desenvolvimento de Aplicações em Java com Spring ...
Aumento de Produtividade no Desenvolvimento de Aplicações em Java com Spring ...Aumento de Produtividade no Desenvolvimento de Aplicações em Java com Spring ...
Aumento de Produtividade no Desenvolvimento de Aplicações em Java com Spring ...Fernando Godóy
 
Enterprise JavaBeans simples e descomplicado, na prática
Enterprise JavaBeans simples e descomplicado, na práticaEnterprise JavaBeans simples e descomplicado, na prática
Enterprise JavaBeans simples e descomplicado, na práticaGlobalcode
 
TDC2016SP - Trilha Frameworks JavaScript
TDC2016SP - Trilha Frameworks JavaScriptTDC2016SP - Trilha Frameworks JavaScript
TDC2016SP - Trilha Frameworks JavaScripttdc-globalcode
 
Desenvolvimento RIA com Java
Desenvolvimento RIA com JavaDesenvolvimento RIA com Java
Desenvolvimento RIA com Javaarmeniocardoso
 
ASP.NET Web Forms X ASP.NET MVC
ASP.NET Web Forms X ASP.NET MVCASP.NET Web Forms X ASP.NET MVC
ASP.NET Web Forms X ASP.NET MVCguest489a65e
 
TDC2011: Arquitetura de Software Enterprise
TDC2011: Arquitetura de Software EnterpriseTDC2011: Arquitetura de Software Enterprise
TDC2011: Arquitetura de Software EnterpriseDr. Spock
 
Desenvolvimento Ria com Java
Desenvolvimento Ria com JavaDesenvolvimento Ria com Java
Desenvolvimento Ria com JavaTI Infnet
 
Curso PHP UNIFACS 2014.1 – Frameworks
Curso PHP UNIFACS 2014.1 – FrameworksCurso PHP UNIFACS 2014.1 – Frameworks
Curso PHP UNIFACS 2014.1 – FrameworksJonata Weber
 
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse Virgo
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse VirgoModularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse Virgo
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse VirgoRegis Machado
 
TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?
TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?
TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?tdc-globalcode
 
Criando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMindCriando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMindJaydson Gomes
 
GlassFish, Maven, Cloud e o futuro do Java EE
GlassFish, Maven, Cloud e o futuro do Java EEGlassFish, Maven, Cloud e o futuro do Java EE
GlassFish, Maven, Cloud e o futuro do Java EEBruno Borges
 
GlassFish, Maven, Cloud e Java EE
GlassFish, Maven, Cloud e Java EEGlassFish, Maven, Cloud e Java EE
GlassFish, Maven, Cloud e Java EEBruno Borges
 
Anatomia do JSF, JavaServer Faces
Anatomia do JSF, JavaServer FacesAnatomia do JSF, JavaServer Faces
Anatomia do JSF, JavaServer FacesRafael Ponte
 
Conhecimentos para tomar atitude e migrar sua aplicação para asp.net core
Conhecimentos para tomar atitude e migrar sua aplicação para asp.net coreConhecimentos para tomar atitude e migrar sua aplicação para asp.net core
Conhecimentos para tomar atitude e migrar sua aplicação para asp.net coreRodrigo Kono
 

Similar a Aop Aspect J 1.5.4 Capitulo 01 (20)

Introdução a jsf
Introdução a jsfIntrodução a jsf
Introdução a jsf
 
Aumento de Produtividade no Desenvolvimento de Aplicações em Java com Spring ...
Aumento de Produtividade no Desenvolvimento de Aplicações em Java com Spring ...Aumento de Produtividade no Desenvolvimento de Aplicações em Java com Spring ...
Aumento de Produtividade no Desenvolvimento de Aplicações em Java com Spring ...
 
Enterprise JavaBeans simples e descomplicado, na prática
Enterprise JavaBeans simples e descomplicado, na práticaEnterprise JavaBeans simples e descomplicado, na prática
Enterprise JavaBeans simples e descomplicado, na prática
 
TDC2016SP - Trilha Frameworks JavaScript
TDC2016SP - Trilha Frameworks JavaScriptTDC2016SP - Trilha Frameworks JavaScript
TDC2016SP - Trilha Frameworks JavaScript
 
Desenvolvimento RIA com Java
Desenvolvimento RIA com JavaDesenvolvimento RIA com Java
Desenvolvimento RIA com Java
 
AOP - ESJUG - 2005
AOP - ESJUG - 2005AOP - ESJUG - 2005
AOP - ESJUG - 2005
 
ASP.NET Web Forms X ASP.NET MVC
ASP.NET Web Forms X ASP.NET MVCASP.NET Web Forms X ASP.NET MVC
ASP.NET Web Forms X ASP.NET MVC
 
TDC2011: Arquitetura de Software Enterprise
TDC2011: Arquitetura de Software EnterpriseTDC2011: Arquitetura de Software Enterprise
TDC2011: Arquitetura de Software Enterprise
 
Desenvolvimento Ria com Java
Desenvolvimento Ria com JavaDesenvolvimento Ria com Java
Desenvolvimento Ria com Java
 
Curso PHP UNIFACS 2014.1 – Frameworks
Curso PHP UNIFACS 2014.1 – FrameworksCurso PHP UNIFACS 2014.1 – Frameworks
Curso PHP UNIFACS 2014.1 – Frameworks
 
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse Virgo
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse VirgoModularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse Virgo
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse Virgo
 
TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?
TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?
TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?
 
Curso jsf
Curso jsfCurso jsf
Curso jsf
 
Criando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMindCriando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMind
 
GlassFish, Maven, Cloud e o futuro do Java EE
GlassFish, Maven, Cloud e o futuro do Java EEGlassFish, Maven, Cloud e o futuro do Java EE
GlassFish, Maven, Cloud e o futuro do Java EE
 
Arquitetura do Framework Spring
Arquitetura do Framework SpringArquitetura do Framework Spring
Arquitetura do Framework Spring
 
GlassFish, Maven, Cloud e Java EE
GlassFish, Maven, Cloud e Java EEGlassFish, Maven, Cloud e Java EE
GlassFish, Maven, Cloud e Java EE
 
Anatomia do JSF, JavaServer Faces
Anatomia do JSF, JavaServer FacesAnatomia do JSF, JavaServer Faces
Anatomia do JSF, JavaServer Faces
 
Java web
Java webJava web
Java web
 
Conhecimentos para tomar atitude e migrar sua aplicação para asp.net core
Conhecimentos para tomar atitude e migrar sua aplicação para asp.net coreConhecimentos para tomar atitude e migrar sua aplicação para asp.net core
Conhecimentos para tomar atitude e migrar sua aplicação para asp.net core
 

Más de Diego Pacheco

Naming Things Book : Simple Book Review!
Naming Things Book : Simple Book Review!Naming Things Book : Simple Book Review!
Naming Things Book : Simple Book Review!Diego Pacheco
 
Continuous Discovery Habits Book Review.pdf
Continuous Discovery Habits  Book Review.pdfContinuous Discovery Habits  Book Review.pdf
Continuous Discovery Habits Book Review.pdfDiego Pacheco
 
Thoughts about Shape Up
Thoughts about Shape UpThoughts about Shape Up
Thoughts about Shape UpDiego Pacheco
 
Encryption Deep Dive
Encryption Deep DiveEncryption Deep Dive
Encryption Deep DiveDiego Pacheco
 
Management: Doing the non-obvious! III
Management: Doing the non-obvious! IIIManagement: Doing the non-obvious! III
Management: Doing the non-obvious! IIIDiego Pacheco
 
Design is not Subjective
Design is not SubjectiveDesign is not Subjective
Design is not SubjectiveDiego Pacheco
 
Architecture & Engineering : Doing the non-obvious!
Architecture & Engineering :  Doing the non-obvious!Architecture & Engineering :  Doing the non-obvious!
Architecture & Engineering : Doing the non-obvious!Diego Pacheco
 
Management doing the non-obvious II
Management doing the non-obvious II Management doing the non-obvious II
Management doing the non-obvious II Diego Pacheco
 
Testing in production
Testing in productionTesting in production
Testing in productionDiego Pacheco
 
Nine lies about work
Nine lies about workNine lies about work
Nine lies about workDiego Pacheco
 
Management: doing the nonobvious!
Management: doing the nonobvious!Management: doing the nonobvious!
Management: doing the nonobvious!Diego Pacheco
 
Dealing with dependencies
Dealing  with dependenciesDealing  with dependencies
Dealing with dependenciesDiego Pacheco
 
Dealing with dependencies in tests
Dealing  with dependencies in testsDealing  with dependencies in tests
Dealing with dependencies in testsDiego Pacheco
 

Más de Diego Pacheco (20)

Naming Things Book : Simple Book Review!
Naming Things Book : Simple Book Review!Naming Things Book : Simple Book Review!
Naming Things Book : Simple Book Review!
 
Continuous Discovery Habits Book Review.pdf
Continuous Discovery Habits  Book Review.pdfContinuous Discovery Habits  Book Review.pdf
Continuous Discovery Habits Book Review.pdf
 
Thoughts about Shape Up
Thoughts about Shape UpThoughts about Shape Up
Thoughts about Shape Up
 
Holacracy
HolacracyHolacracy
Holacracy
 
AWS IAM
AWS IAMAWS IAM
AWS IAM
 
CDKs
CDKsCDKs
CDKs
 
Encryption Deep Dive
Encryption Deep DiveEncryption Deep Dive
Encryption Deep Dive
 
Sec 101
Sec 101Sec 101
Sec 101
 
Reflections on SCM
Reflections on SCMReflections on SCM
Reflections on SCM
 
Management: Doing the non-obvious! III
Management: Doing the non-obvious! IIIManagement: Doing the non-obvious! III
Management: Doing the non-obvious! III
 
Design is not Subjective
Design is not SubjectiveDesign is not Subjective
Design is not Subjective
 
Architecture & Engineering : Doing the non-obvious!
Architecture & Engineering :  Doing the non-obvious!Architecture & Engineering :  Doing the non-obvious!
Architecture & Engineering : Doing the non-obvious!
 
Management doing the non-obvious II
Management doing the non-obvious II Management doing the non-obvious II
Management doing the non-obvious II
 
Testing in production
Testing in productionTesting in production
Testing in production
 
Nine lies about work
Nine lies about workNine lies about work
Nine lies about work
 
Management: doing the nonobvious!
Management: doing the nonobvious!Management: doing the nonobvious!
Management: doing the nonobvious!
 
AI and the Future
AI and the FutureAI and the Future
AI and the Future
 
Dealing with dependencies
Dealing  with dependenciesDealing  with dependencies
Dealing with dependencies
 
Dealing with dependencies in tests
Dealing  with dependencies in testsDealing  with dependencies in tests
Dealing with dependencies in tests
 
Kanban 2020
Kanban 2020Kanban 2020
Kanban 2020
 

Aop Aspect J 1.5.4 Capitulo 01

  • 1. AOP – AspectJ 1.5.4 Programação Orientada a Aspectos
  • 2. 11 Conceitos Básicos sobre AOPConceitos Básicos sobre AOP
  • 3. 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
  • 4. Conceitos BásicosConceitos Básicos Xerox Park AspectJ 2001 Eclipse AOP Concerns Crosscuting concerns Extensão do Java
  • 5. 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
  • 6. Concerns vs Crosscuting concernsConcerns vs Crosscuting concerns Diferenciando Concerns de Crosscuting concerns
  • 7. Concerns vs Crosscuting concernsConcerns vs Crosscuting concerns
  • 8. Concerns vs Crosscuting concernsConcerns vs Crosscuting concerns • Dilema • Under design vs Over design
  • 9. Pilares do AspectJPilares do AspectJ • Join point • Pointcut • Advice • before • after • around • Inner-type declaration
  • 10. AspectsAspects package <<Nome do pacote de existir>>; import <<Import java/AspectJ se existir>>; public aspect <<Nome do aspecto padrão java >> { // Pointcuts // Advices }
  • 11. Mecanismos de WeavingMecanismos de Weaving • Modificar a JVM • Compile time • Load Time
  • 12. 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
  • 13. 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
  • 14. 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.
  • 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 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.