SlideShare ist ein Scribd-Unternehmen logo
1 von 17
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); }

Weitere ähnliche Inhalte

Was ist angesagt?

Linguagem C - Funções e ponteiros
Linguagem C - Funções e ponteiros Linguagem C - Funções e ponteiros
Linguagem C - Funções e ponteiros Karoline Tavares
 
Logica Algoritmo 07 Subalgoritmos
Logica Algoritmo 07 SubalgoritmosLogica Algoritmo 07 Subalgoritmos
Logica Algoritmo 07 SubalgoritmosRegis Magalhães
 
F sharp e o paradigma funcional
F sharp e o paradigma funcionalF sharp e o paradigma funcional
F sharp e o paradigma funcionalEvandro Souza
 
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 TorresTchelinux
 
Debugging tips and tricks
Debugging tips and tricksDebugging tips and tricks
Debugging tips and tricksTales Andrade
 
Recursividade em linguagem C
Recursividade em linguagem CRecursividade em linguagem C
Recursividade em linguagem CLeonardo Lima
 
Linguagem C 01 Primeiros Passos
Linguagem C 01 Primeiros PassosLinguagem C 01 Primeiros Passos
Linguagem C 01 Primeiros PassosRegis Magalhães
 
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 #3Ismar Silveira
 
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 3guestd6da1cd
 
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çõesFellyph Cintra
 
Linguagem C 05 Vetores E Matrizes
Linguagem C 05 Vetores E MatrizesLinguagem C 05 Vetores E Matrizes
Linguagem C 05 Vetores E MatrizesRegis Magalhães
 
Linguagem C 04 Estruturas De Repeticao
Linguagem C 04 Estruturas De RepeticaoLinguagem C 04 Estruturas De Repeticao
Linguagem C 04 Estruturas De RepeticaoRegis Magalhães
 
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...Manuel Menezes de Sequeira
 

Was ist angesagt? (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...
 

Andere mochten auch

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 HikkikomoriDavid VePri
 
Mobiilioppiminen laajennetussa työssäoppimisessa
Mobiilioppiminen laajennetussa työssäoppimisessaMobiilioppiminen laajennetussa työssäoppimisessa
Mobiilioppiminen laajennetussa työssäoppimisessaPauliina 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 OMariliCabanillas
 
XM603 Group4 - 16012010 Q2
XM603 Group4 - 16012010 Q2XM603 Group4 - 16012010 Q2
XM603 Group4 - 16012010 Q2Dinsor Rimnatee
 
Prezentace projektu Masarykův onkologický ústav
Prezentace projektu Masarykův onkologický ústavPrezentace projektu Masarykův onkologický ústav
Prezentace projektu Masarykův onkologický ústavKISK FF MU
 
Chad Minichillo Mfg Alliance LSV
Chad Minichillo Mfg Alliance LSVChad Minichillo Mfg Alliance LSV
Chad Minichillo Mfg Alliance LSVChad Minichillo
 
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...Paolo Nesi
 
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 projektyKISK FF MU
 
Rescue Diver Cert Card
Rescue Diver Cert CardRescue Diver Cert Card
Rescue Diver Cert CardJan Glock
 
20080302 cryptography hirsch_lecture03
20080302 cryptography hirsch_lecture0320080302 cryptography hirsch_lecture03
20080302 cryptography hirsch_lecture03Computer 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 creatividadLeandroFPessoa
 
Juomasekoituksia mobiilisti
Juomasekoituksia mobiilistiJuomasekoituksia mobiilisti
Juomasekoituksia mobiilistiPauliina Venho
 
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 Kashalikarshivsr5
 
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 12Marcos Donato
 
Освенцим одно из самых печальных мест на лице нашей земли
Освенцим   одно из самых печальных мест на лице нашей землиОсвенцим   одно из самых печальных мест на лице нашей земли
Освенцим одно из самых печальных мест на лице нашей землиzalcman96
 

Andere mochten auch (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
 
Освенцим одно из самых печальных мест на лице нашей земли
Освенцим   одно из самых печальных мест на лице нашей землиОсвенцим   одно из самых печальных мест на лице нашей земли
Освенцим одно из самых печальных мест на лице нашей земли
 

Ähnlich wie AOP – AspectJ Programação Orientada a Aspectos

Spring framework 2.5
Spring framework 2.5Spring framework 2.5
Spring framework 2.5Diego Pacheco
 
Java introdução ao java
Java   introdução ao javaJava   introdução ao java
Java introdução ao javaArmando Daniel
 
TDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no AndroidTDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no Androidtdc-globalcode
 
TDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no AndroidTDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no Androidtdc-globalcode
 
Struts Cap10 DepuraçãO E Log
Struts Cap10 DepuraçãO E LogStruts Cap10 DepuraçãO E Log
Struts Cap10 DepuraçãO E LogWaldir R. Pires Jr
 
02 JAVAEstrutura sequencial (slides).pptx
02 JAVAEstrutura sequencial (slides).pptx02 JAVAEstrutura sequencial (slides).pptx
02 JAVAEstrutura sequencial (slides).pptxwilliam Sarti José
 
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 jQueryHarlley Oliveira
 
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 Javaelliando dias
 
Manipulando Bancos de Dados com JDBC
Manipulando Bancos de Dados com JDBCManipulando Bancos de Dados com JDBC
Manipulando Bancos de Dados com JDBCAntonio Passos
 

Ähnlich wie AOP – AspectJ Programação Orientada a Aspectos (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
 

Mehr von 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
 

Mehr von 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 – AspectJ Programação Orientada a Aspectos

  • 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.