SlideShare uma empresa Scribd logo
AOP – AspectJ 1.5.4 Programação Orientada a Aspectos
4 Recursos Adicionais
Objetivos ,[object Object],[object Object],[object Object]
AspectJ com annotations ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
AspectJ com annotations ,[object Object],[object Object],[object Object],[object Object],[object Object]
AspectJ com annotations @Pointcut ( "call(* *.*(int)) && args(i) && if()" ) public   static   boolean  chamadaIf( int  i) { return  i > 0; }   @AfterReturning ( "criticalOperation()" ) public   void  phew() { System. out .println( "phew" ); } @AfterReturning (pointcut= "call(Foo+.new(..))" ,returning= "f" ) public   void  itsAFoo(Foo f) { System. out .println( "It's a Foo: "  + f); }
AspectJ com annotations ,[object Object],[object Object],[object Object],[object Object],[object Object]
AspectJ com annotations @Around ( "call(* *.*.now(..))" ) public  String getData(ProceedingJoinPoint pjp){ try  { System. out .println(pjp.getSignature());   return  (String)pjp.proceed(); } catch  (Throwable e) { return  null; } }
Inner-type Declarations ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Inner-type Declarations @Aspect public   class  AnnotationInnerTypeAspect { @DeclareParents ( value= "br.com.targettrust.aop.annotation.innertype.clazz.*" , defaultImpl=PotenciaImpl. class ) public  Potencia  implementadores ; }
Declare Warnings e Errors @DeclareWarning ( "call(java.util.Date.new(..))" ) static   final  String  message  =  "Você não deve utilizar" +  "java.util.Date. Utilize Joda-Time!" ;   @DeclareError ( "call(public void *.apagaGeral()) " ) static   final  String  error  =  "Isso  é  um erro não apague nada!" ;
Declare Soft ,[object Object],[object Object],[object Object],[object Object]
DBC ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
DBC ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Você aprendeu a... ,[object Object],[object Object],[object Object]
Exercícios ,[object Object],[object Object],[object Object]
Exercícios ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Package  br.com.targettrust.aop.advice.after.java; import  java.math.BigDecimal; public   interface  Hotel { public   void  checkIn(String corCabelo, int  horaEntrada, BigDecimal dinheiroQueVoceTem); public  BigDecimal getTotalConta(); public   void  checkOut(BigDecimal vindeDaPropina); }

Mais conteúdo relacionado

Mais procurados

Logica Algoritmo 07 Subalgoritmos
Logica Algoritmo 07 SubalgoritmosLogica Algoritmo 07 Subalgoritmos
Logica Algoritmo 07 Subalgoritmos
Regis Magalhães
 
Recursividade em linguagem C
Recursividade em linguagem CRecursividade em linguagem C
Recursividade em linguagem C
Leonardo Lima
 
Linguagem C 01 Primeiros Passos
Linguagem C 01 Primeiros PassosLinguagem C 01 Primeiros Passos
Linguagem C 01 Primeiros Passos
Regis Magalhães
 
Linguagens de Programação II - Aula 3
Linguagens de Programação II - Aula 3Linguagens de Programação II - Aula 3
Linguagens de Programação II - Aula 3
guestd6da1cd
 
Linguagem C 05 Vetores E Matrizes
Linguagem C 05 Vetores E MatrizesLinguagem C 05 Vetores E Matrizes
Linguagem C 05 Vetores E Matrizes
Regis Magalhães
 
Linguagem C 04 Estruturas De Repeticao
Linguagem C 04 Estruturas De RepeticaoLinguagem C 04 Estruturas De Repeticao
Linguagem C 04 Estruturas De Repeticao
Regis Magalhães
 

Mais procurados (20)

Linguagem C - Funções e ponteiros
Linguagem C - Funções e ponteiros Linguagem C - Funções e ponteiros
Linguagem C - Funções e ponteiros
 
Logica Algoritmo 07 Subalgoritmos
Logica Algoritmo 07 SubalgoritmosLogica Algoritmo 07 Subalgoritmos
Logica Algoritmo 07 Subalgoritmos
 
F sharp e o paradigma funcional
F sharp e o paradigma funcionalF sharp e o paradigma funcional
F sharp e o paradigma funcional
 
Princípios de projeto e boas práticas de programação em Java - Márcio Torres
Princípios de projeto e boas práticas de programação em Java - Márcio TorresPrincípios de projeto e boas práticas de programação em Java - Márcio Torres
Princípios de projeto e boas práticas de programação em Java - Márcio Torres
 
Debugging tips and tricks
Debugging tips and tricksDebugging tips and tricks
Debugging tips and tricks
 
Recursividade em linguagem C
Recursividade em linguagem CRecursividade em linguagem C
Recursividade em linguagem C
 
Linguagem C 01 Primeiros Passos
Linguagem C 01 Primeiros PassosLinguagem C 01 Primeiros Passos
Linguagem C 01 Primeiros Passos
 
Paradigmas de Linguagens de Programacao - Aula #3
Paradigmas de Linguagens de Programacao - Aula #3Paradigmas de Linguagens de Programacao - Aula #3
Paradigmas de Linguagens de Programacao - Aula #3
 
Linguagens de Programação II - Aula 3
Linguagens de Programação II - Aula 3Linguagens de Programação II - Aula 3
Linguagens de Programação II - Aula 3
 
Linguagem C - Funções
Linguagem C - FunçõesLinguagem C - Funções
Linguagem C - Funções
 
4º Aula do Grupo de estudos sobre funções
4º Aula do Grupo de estudos sobre funções4º Aula do Grupo de estudos sobre funções
4º Aula do Grupo de estudos sobre funções
 
Java4
Java4Java4
Java4
 
Linguagem C 05 Vetores E Matrizes
Linguagem C 05 Vetores E MatrizesLinguagem C 05 Vetores E Matrizes
Linguagem C 05 Vetores E Matrizes
 
C++ Funções
 C++ Funções C++ Funções
C++ Funções
 
Ponteiros de Função
Ponteiros de FunçãoPonteiros de Função
Ponteiros de Função
 
Linguagem C 04 Estruturas De Repeticao
Linguagem C 04 Estruturas De RepeticaoLinguagem C 04 Estruturas De Repeticao
Linguagem C 04 Estruturas De Repeticao
 
Aula03 - JavaScript
Aula03 - JavaScriptAula03 - JavaScript
Aula03 - JavaScript
 
Funcao PHP
Funcao PHPFuncao PHP
Funcao PHP
 
Programação C - Aula 2
Programação C - Aula 2Programação C - Aula 2
Programação C - Aula 2
 
3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...
3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...
3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...
 

Destaque

Mobiilioppiminen laajennetussa työssäoppimisessa
Mobiilioppiminen laajennetussa työssäoppimisessaMobiilioppiminen laajennetussa työssäoppimisessa
Mobiilioppiminen laajennetussa työssäoppimisessa
Pauliina Venho
 
B A S E D E D A T O S E S T A M P A D O
B A S E  D E  D A T O S  E S T A M P A D OB A S E  D E  D A T O S  E S T A M P A D O
B A S E D E D A T O S E S T A M P A D O
MariliCabanillas
 
Chad Minichillo Mfg Alliance LSV
Chad Minichillo Mfg Alliance LSVChad Minichillo Mfg Alliance LSV
Chad Minichillo Mfg Alliance LSV
Chad Minichillo
 
Aplikační seminář 2012: lidé a projekty
Aplikační seminář 2012: lidé a projektyAplikační seminář 2012: lidé a projekty
Aplikační seminář 2012: lidé a projekty
KISK FF MU
 
Rescue Diver Cert Card
Rescue Diver Cert CardRescue Diver Cert Card
Rescue Diver Cert Card
Jan Glock
 
20080302 cryptography hirsch_lecture03
20080302 cryptography hirsch_lecture0320080302 cryptography hirsch_lecture03
20080302 cryptography hirsch_lecture03
Computer Science Club
 
Lukáš Hrdlička: Je libo prezentace?
Lukáš Hrdlička: Je libo prezentace?Lukáš Hrdlička: Je libo prezentace?
Lukáš Hrdlička: Je libo prezentace?
KISK FF MU
 
Segunda práctica de creatividad
Segunda práctica de creatividadSegunda práctica de creatividad
Segunda práctica de creatividad
LeandroFPessoa
 
Ankur (Bestseller Marathi Poetry) Dr. Shriiwas Kashalikar
Ankur (Bestseller Marathi Poetry) Dr. Shriiwas KashalikarAnkur (Bestseller Marathi Poetry) Dr. Shriiwas Kashalikar
Ankur (Bestseller Marathi Poetry) Dr. Shriiwas Kashalikar
shivsr5
 
Batman o longo dia das bruxas 12
Batman   o longo dia das bruxas 12Batman   o longo dia das bruxas 12
Batman o longo dia das bruxas 12
Marcos Donato
 
Освенцим одно из самых печальных мест на лице нашей земли
Освенцим   одно из самых печальных мест на лице нашей землиОсвенцим   одно из самых печальных мест на лице нашей земли
Освенцим одно из самых печальных мест на лице нашей земли
zalcman96
 

Destaque (20)

Ubuntu: El fenómeno SIMS y el Hikkikomori
Ubuntu: El fenómeno SIMS y el HikkikomoriUbuntu: El fenómeno SIMS y el Hikkikomori
Ubuntu: El fenómeno SIMS y el Hikkikomori
 
thank you
thank youthank you
thank you
 
Mobiilioppiminen laajennetussa työssäoppimisessa
Mobiilioppiminen laajennetussa työssäoppimisessaMobiilioppiminen laajennetussa työssäoppimisessa
Mobiilioppiminen laajennetussa työssäoppimisessa
 
B A S E D E D A T O S E S T A M P A D O
B A S E  D E  D A T O S  E S T A M P A D OB A S E  D E  D A T O S  E S T A M P A D O
B A S E D E D A T O S E S T A M P A D O
 
XM603 Group4 - 16012010 Q2
XM603 Group4 - 16012010 Q2XM603 Group4 - 16012010 Q2
XM603 Group4 - 16012010 Q2
 
Prezentace projektu Masarykův onkologický ústav
Prezentace projektu Masarykův onkologický ústavPrezentace projektu Masarykův onkologický ústav
Prezentace projektu Masarykův onkologický ústav
 
Chad Minichillo Mfg Alliance LSV
Chad Minichillo Mfg Alliance LSVChad Minichillo Mfg Alliance LSV
Chad Minichillo Mfg Alliance LSV
 
Mariam n
Mariam nMariam n
Mariam n
 
ECLAP tutorial, see http://www.eclap.eu, social networking, aggregation, myst...
ECLAP tutorial, see http://www.eclap.eu, social networking, aggregation, myst...ECLAP tutorial, see http://www.eclap.eu, social networking, aggregation, myst...
ECLAP tutorial, see http://www.eclap.eu, social networking, aggregation, myst...
 
Boletin prensa04 12-2012
Boletin prensa04 12-2012Boletin prensa04 12-2012
Boletin prensa04 12-2012
 
Aplikační seminář 2012: lidé a projekty
Aplikační seminář 2012: lidé a projektyAplikační seminář 2012: lidé a projekty
Aplikační seminář 2012: lidé a projekty
 
Rescue Diver Cert Card
Rescue Diver Cert CardRescue Diver Cert Card
Rescue Diver Cert Card
 
20080302 cryptography hirsch_lecture03
20080302 cryptography hirsch_lecture0320080302 cryptography hirsch_lecture03
20080302 cryptography hirsch_lecture03
 
Lukáš Hrdlička: Je libo prezentace?
Lukáš Hrdlička: Je libo prezentace?Lukáš Hrdlička: Je libo prezentace?
Lukáš Hrdlička: Je libo prezentace?
 
Dia21
Dia21Dia21
Dia21
 
Segunda práctica de creatividad
Segunda práctica de creatividadSegunda práctica de creatividad
Segunda práctica de creatividad
 
Juomasekoituksia mobiilisti
Juomasekoituksia mobiilistiJuomasekoituksia mobiilisti
Juomasekoituksia mobiilisti
 
Ankur (Bestseller Marathi Poetry) Dr. Shriiwas Kashalikar
Ankur (Bestseller Marathi Poetry) Dr. Shriiwas KashalikarAnkur (Bestseller Marathi Poetry) Dr. Shriiwas Kashalikar
Ankur (Bestseller Marathi Poetry) Dr. Shriiwas Kashalikar
 
Batman o longo dia das bruxas 12
Batman   o longo dia das bruxas 12Batman   o longo dia das bruxas 12
Batman o longo dia das bruxas 12
 
Освенцим одно из самых печальных мест на лице нашей земли
Освенцим   одно из самых печальных мест на лице нашей землиОсвенцим   одно из самых печальных мест на лице нашей земли
Освенцим одно из самых печальных мест на лице нашей земли
 

Semelhante a Aop Aspect J 1.5.4 Capitulo 04

Java introdução ao java
Java   introdução ao javaJava   introdução ao java
Java introdução ao java
Armando Daniel
 
Struts Cap10 DepuraçãO E Log
Struts Cap10 DepuraçãO E LogStruts Cap10 DepuraçãO E Log
Struts Cap10 DepuraçãO E Log
Waldir R. Pires Jr
 
02 JAVAEstrutura sequencial (slides).pptx
02 JAVAEstrutura sequencial (slides).pptx02 JAVAEstrutura sequencial (slides).pptx
02 JAVAEstrutura sequencial (slides).pptx
william Sarti José
 
AspectJ — Programação orientada a aspectos em Java
AspectJ — Programação orientada a aspectos em JavaAspectJ — Programação orientada a aspectos em Java
AspectJ — Programação orientada a aspectos em Java
elliando dias
 

Semelhante a Aop Aspect J 1.5.4 Capitulo 04 (20)

Spring framework 2.5
Spring framework 2.5Spring framework 2.5
Spring framework 2.5
 
Java introdução ao java
Java   introdução ao javaJava   introdução ao java
Java introdução ao java
 
Java3
Java3Java3
Java3
 
Introdução ao Java 5
Introdução ao Java 5Introdução ao Java 5
Introdução ao Java 5
 
Java hidden features
Java hidden featuresJava hidden features
Java hidden features
 
Aula5
Aula5Aula5
Aula5
 
Mini Curso Python
Mini Curso PythonMini Curso Python
Mini Curso Python
 
TDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no AndroidTDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no Android
 
TDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no AndroidTDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no Android
 
Java hidden features
Java hidden featuresJava hidden features
Java hidden features
 
Struts Cap10 DepuraçãO E Log
Struts Cap10 DepuraçãO E LogStruts Cap10 DepuraçãO E Log
Struts Cap10 DepuraçãO E Log
 
Java5
Java5Java5
Java5
 
02 JAVAEstrutura sequencial (slides).pptx
02 JAVAEstrutura sequencial (slides).pptx02 JAVAEstrutura sequencial (slides).pptx
02 JAVAEstrutura sequencial (slides).pptx
 
Ganhando tempo com casos de testes
Ganhando tempo com casos de testesGanhando tempo com casos de testes
Ganhando tempo com casos de testes
 
Java e orientação a objetos
Java e orientação a objetosJava e orientação a objetos
Java e orientação a objetos
 
Aop Aspect J 1.5.4
Aop Aspect J 1.5.4Aop Aspect J 1.5.4
Aop Aspect J 1.5.4
 
Python Emsl2009
Python Emsl2009Python Emsl2009
Python Emsl2009
 
Melhorando a Experiência do Usuário com JavaScript e jQuery
Melhorando a Experiência do Usuário com JavaScript e jQueryMelhorando a Experiência do Usuário com JavaScript e jQuery
Melhorando a Experiência do Usuário com JavaScript e jQuery
 
AspectJ — Programação orientada a aspectos em Java
AspectJ — Programação orientada a aspectos em JavaAspectJ — Programação orientada a aspectos em Java
AspectJ — Programação orientada a aspectos em Java
 
Manipulando Bancos de Dados com JDBC
Manipulando Bancos de Dados com JDBCManipulando Bancos de Dados com JDBC
Manipulando Bancos de Dados com JDBC
 

Mais de Diego Pacheco

Mais 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 04

  • 1. AOP – AspectJ 1.5.4 Programação Orientada a Aspectos
  • 3.
  • 4.
  • 5.
  • 6. AspectJ com annotations @Pointcut ( "call(* *.*(int)) && args(i) && if()" ) public static boolean chamadaIf( int i) { return i > 0; } @AfterReturning ( "criticalOperation()" ) public void phew() { System. out .println( "phew" ); } @AfterReturning (pointcut= "call(Foo+.new(..))" ,returning= "f" ) public void itsAFoo(Foo f) { System. out .println( "It's a Foo: " + f); }
  • 7.
  • 8. AspectJ com annotations @Around ( "call(* *.*.now(..))" ) public String getData(ProceedingJoinPoint pjp){ try { System. out .println(pjp.getSignature()); return (String)pjp.proceed(); } catch (Throwable e) { return null; } }
  • 9.
  • 10. Inner-type Declarations @Aspect public class AnnotationInnerTypeAspect { @DeclareParents ( value= "br.com.targettrust.aop.annotation.innertype.clazz.*" , defaultImpl=PotenciaImpl. class ) public Potencia implementadores ; }
  • 11. Declare Warnings e Errors @DeclareWarning ( "call(java.util.Date.new(..))" ) static final String message = "Você não deve utilizar" + "java.util.Date. Utilize Joda-Time!" ; @DeclareError ( "call(public void *.apagaGeral()) " ) static final String error = "Isso é um erro não apague nada!" ;
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.