SlideShare uma empresa Scribd logo
1 de 46
Aspect-Oriented Programming ,[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],Separation of concerns Aspect-Oriented Programming
[object Object],[object Object],[object Object],[object Object],[object Object],Aspect-Oriented Programming Separation of concerns
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Esempio di concerns di un sistema Aspect-Oriented Programming
[object Object],[object Object],[object Object],Definizione di Concern Aspect-Oriented Programming
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Esempio di concerns di un sistema Aspect-Oriented Programming Core concerns Crosscutting concerns
[object Object],Aspect-Oriented Programming Crosscutting Concerns
[object Object],[object Object],Aspect-Oriented Programming Case study Apache
[object Object],[object Object],Aspect-Oriented Programming Case study Apache
[object Object],[object Object],Aspect-Oriented Programming Case study Apache
[object Object],[object Object],[object Object],Aspect-Oriented Programming Crosscutting Concerns - conseguenze
[object Object],[object Object],[object Object],[object Object],[object Object],Aspect-Oriented Programming Crosscutting Concerns - conseguenze
[object Object],[object Object],[object Object],[object Object],[object Object],Aspect-Oriented Programming Crosscutting Concerns - conseguenze
[object Object],[object Object],[object Object],[object Object],[object Object],Aspect-Oriented Programming Overview
[object Object],[object Object],[object Object],[object Object],[object Object],Aspect-Oriented Programming Terminologia
[object Object],[object Object],[object Object],[object Object],[object Object],Aspect-Oriented Programming AOP's Java framework
[object Object],Aspect-Oriented Programming AspectJ
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Aspect-Oriented Programming AspectJ
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Aspect-Oriented Programming AspectJ - Joinpoint
[object Object],[object Object],[object Object],Aspect-Oriented Programming AspectJ - Pointcut public   pointcut  print() :  call ( public   void  Message.print*(..));
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Aspect-Oriented Programming AspectJ - Advice void   around () : print()  { System.out.println( "Buongiorno!" ); proceed (); System.out.println( "Arrivederci!" ); return ; }
[object Object],[object Object],[object Object],Aspect-Oriented Programming AspectJ - Aspect public   aspect  ServiceAspect { public   pointcut  print() :  call ( public   void  Message.print*(..)); void   around () : print()  { System.out.println( "Buongiorno!" ); proceed (); System.out.println( "Arrivederci!" ); return ; } }
[object Object],Aspect-Oriented Programming Spring AOP
Aspect-Oriented Programming Pattern GoF DECORATOR - Abstract ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Aspect-Oriented Programming Pattern GoF DECORATOR - Class diagram
Aspect-Oriented Programming Pattern GoF PROXY - Abstract ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Aspect-Oriented Programming Pattern GoF PROXY - Class diagram
Aspect-Oriented Programming DYNAMIC PROXY - Abstract ,[object Object],[object Object],[object Object],[object Object],[object Object]
Aspect-Oriented Programming DYNAMIC PROXY - Class diagram
Aspect-Oriented Programming DYNAMIC PROXY - Sequence diagram
Aspect-Oriented Programming DYNAMIC PROXY - Invocation handler POJO impl interface dynamic proxy factory invocation  handler
Aspect-Oriented Programming Spring AOP module
Aspect-Oriented Programming SPRING AOP Support ,[object Object],[object Object],[object Object],[object Object]
Aspect-Oriented Programming PROXY FACTORY BEAN - Proxy mode Target Bean Target Interface Proxy Factory Interceptor List Pointcut Advice
Aspect-Oriented Programming PROXY FACTORY BEAN - Decorator mode
[object Object],Aspect-Oriented Programming PROXY FACTORY BEAN – Autoproxy facility BeanPostProcessor Pointcut Advice
Aspect-Oriented Programming SPRING AOP - Advice ,[object Object],[object Object],[object Object],[object Object],[object Object]
Aspect-Oriented Programming Around Advice
Aspect-Oriented Programming Around Advice - Code
[object Object],[object Object],[object Object],Aspect-Oriented Programming @AspectJ annotation crea un autoproxy factory di tipo  AnnotationAwareAspectJ AutoProxyCreator @AspectJ annotations
[object Object],Aspect-Oriented Programming Pure POJO aspect Before Advice XML Tag
<aop:config> <aop:aspect> <aop:advisor> <aop:pointcut> <aop:before> <aop:around> <aop:after> <aop:after-returning> <aop:after-throwing> ,[object Object],[object Object],Aspect-Oriented Programming Pure POJO XML elements
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Aspect-Oriented Programming Case study overview
...let's coding... Aspect-Oriented Programming Case study live session
References ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Aspect-Oriented Programming
[object Object],...happy coding applying aspects!!! Aspect-Oriented Programming Conclusioni

Mais conteúdo relacionado

Mais procurados

Design pattern architetturali Model View Controller, MVP e MVVM
Design pattern architetturali   Model View Controller, MVP e MVVMDesign pattern architetturali   Model View Controller, MVP e MVVM
Design pattern architetturali Model View Controller, MVP e MVVMRiccardo Cardin
 
Errori comuni nei documenti di Analisi dei Requisiti
Errori comuni nei documenti di Analisi dei RequisitiErrori comuni nei documenti di Analisi dei Requisiti
Errori comuni nei documenti di Analisi dei RequisitiRiccardo Cardin
 
Design Pattern Creazionali
Design Pattern CreazionaliDesign Pattern Creazionali
Design Pattern CreazionaliRiccardo Cardin
 
Design Pattern Architetturali - Dependency Injection
Design Pattern Architetturali - Dependency InjectionDesign Pattern Architetturali - Dependency Injection
Design Pattern Architetturali - Dependency InjectionRiccardo Cardin
 
06 - Programmazione: Scope Variabili
06 - Programmazione: Scope Variabili06 - Programmazione: Scope Variabili
06 - Programmazione: Scope VariabiliMajong DevJfu
 
Lezione 03 - Interface
Lezione 03 - InterfaceLezione 03 - Interface
Lezione 03 - InterfaceMarco Bianchi
 
Il linguaggio UML - Teoria ed esempi pratici sugli use case diagram
Il linguaggio UML - Teoria ed esempi pratici sugli use case diagramIl linguaggio UML - Teoria ed esempi pratici sugli use case diagram
Il linguaggio UML - Teoria ed esempi pratici sugli use case diagramGiuseppe Cramarossa
 
01 - Programmazione: Dai Problemi ai Programmi
01 - Programmazione: Dai Problemi ai Programmi01 - Programmazione: Dai Problemi ai Programmi
01 - Programmazione: Dai Problemi ai ProgrammiMajong DevJfu
 

Mais procurados (10)

Design pattern architetturali Model View Controller, MVP e MVVM
Design pattern architetturali   Model View Controller, MVP e MVVMDesign pattern architetturali   Model View Controller, MVP e MVVM
Design pattern architetturali Model View Controller, MVP e MVVM
 
Diagrammi Use Case
Diagrammi Use CaseDiagrammi Use Case
Diagrammi Use Case
 
Errori comuni nei documenti di Analisi dei Requisiti
Errori comuni nei documenti di Analisi dei RequisitiErrori comuni nei documenti di Analisi dei Requisiti
Errori comuni nei documenti di Analisi dei Requisiti
 
Design Pattern Creazionali
Design Pattern CreazionaliDesign Pattern Creazionali
Design Pattern Creazionali
 
Design Pattern Architetturali - Dependency Injection
Design Pattern Architetturali - Dependency InjectionDesign Pattern Architetturali - Dependency Injection
Design Pattern Architetturali - Dependency Injection
 
Lezione 11 - Bridge
Lezione 11 - BridgeLezione 11 - Bridge
Lezione 11 - Bridge
 
06 - Programmazione: Scope Variabili
06 - Programmazione: Scope Variabili06 - Programmazione: Scope Variabili
06 - Programmazione: Scope Variabili
 
Lezione 03 - Interface
Lezione 03 - InterfaceLezione 03 - Interface
Lezione 03 - Interface
 
Il linguaggio UML - Teoria ed esempi pratici sugli use case diagram
Il linguaggio UML - Teoria ed esempi pratici sugli use case diagramIl linguaggio UML - Teoria ed esempi pratici sugli use case diagram
Il linguaggio UML - Teoria ed esempi pratici sugli use case diagram
 
01 - Programmazione: Dai Problemi ai Programmi
01 - Programmazione: Dai Problemi ai Programmi01 - Programmazione: Dai Problemi ai Programmi
01 - Programmazione: Dai Problemi ai Programmi
 

Destaque

3 Core Principles of Kung Fu
3 Core Principles of Kung Fu3 Core Principles of Kung Fu
3 Core Principles of Kung FuShifu Shi Yan Jun
 
2010412 1st social marketing breakfast 1
2010412 1st social marketing breakfast 12010412 1st social marketing breakfast 1
2010412 1st social marketing breakfast 1Patrick Willemarck
 
European ‘Research Game’ TR
European ‘Research Game’ TREuropean ‘Research Game’ TR
European ‘Research Game’ TRJoel Josephson
 
Web2punt0 sessie NPCF
Web2punt0 sessie NPCFWeb2punt0 sessie NPCF
Web2punt0 sessie NPCFMarnix Bras
 
Technology in education
Technology in educationTechnology in education
Technology in educationAnirudh Phadke
 
A Scottish Prayer By Mafalda And InéS
A Scottish Prayer By Mafalda And InéSA Scottish Prayer By Mafalda And InéS
A Scottish Prayer By Mafalda And InéSTweenyWeeny
 
Dawson EWeek - Entrepreneurship Week Presentation
Dawson EWeek - Entrepreneurship Week PresentationDawson EWeek - Entrepreneurship Week Presentation
Dawson EWeek - Entrepreneurship Week PresentationKatheline Coleman
 

Destaque (8)

Corrubedo
CorrubedoCorrubedo
Corrubedo
 
3 Core Principles of Kung Fu
3 Core Principles of Kung Fu3 Core Principles of Kung Fu
3 Core Principles of Kung Fu
 
2010412 1st social marketing breakfast 1
2010412 1st social marketing breakfast 12010412 1st social marketing breakfast 1
2010412 1st social marketing breakfast 1
 
European ‘Research Game’ TR
European ‘Research Game’ TREuropean ‘Research Game’ TR
European ‘Research Game’ TR
 
Web2punt0 sessie NPCF
Web2punt0 sessie NPCFWeb2punt0 sessie NPCF
Web2punt0 sessie NPCF
 
Technology in education
Technology in educationTechnology in education
Technology in education
 
A Scottish Prayer By Mafalda And InéS
A Scottish Prayer By Mafalda And InéSA Scottish Prayer By Mafalda And InéS
A Scottish Prayer By Mafalda And InéS
 
Dawson EWeek - Entrepreneurship Week Presentation
Dawson EWeek - Entrepreneurship Week PresentationDawson EWeek - Entrepreneurship Week Presentation
Dawson EWeek - Entrepreneurship Week Presentation
 

Semelhante a Aspect Oriented Programming

Machine learning models continuous deployment on azure using devops
Machine learning models continuous deployment on azure using devopsMachine learning models continuous deployment on azure using devops
Machine learning models continuous deployment on azure using devopsIgor Antonacci
 
Alm pills - Sessione community tour Dot Net Umbria 2011
Alm pills - Sessione community tour Dot Net Umbria 2011Alm pills - Sessione community tour Dot Net Umbria 2011
Alm pills - Sessione community tour Dot Net Umbria 2011Gian Maria Ricci
 
2011.02.19 Introducing F#
2011.02.19 Introducing F#2011.02.19 Introducing F#
2011.02.19 Introducing F#Marco Parenzan
 
Modulo 6 Spring Framework Core E Aop
Modulo 6 Spring Framework Core E AopModulo 6 Spring Framework Core E Aop
Modulo 6 Spring Framework Core E Aopjdksrl
 
Generazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptxGenerazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptxGiacomoZorzin
 
Idiomatic Domain Driven Design
Idiomatic Domain Driven DesignIdiomatic Domain Driven Design
Idiomatic Domain Driven DesignAndrea Saltarello
 
DotNetToscana - Sessione TypeScript
DotNetToscana - Sessione TypeScriptDotNetToscana - Sessione TypeScript
DotNetToscana - Sessione TypeScriptSinergia Totale
 
SPRING - MAVEN - REST API (ITA - Luglio 2017)
SPRING - MAVEN - REST API (ITA - Luglio 2017)SPRING - MAVEN - REST API (ITA - Luglio 2017)
SPRING - MAVEN - REST API (ITA - Luglio 2017)Valerio Radice
 
Windows Workflow Foundation 4
Windows Workflow Foundation 4Windows Workflow Foundation 4
Windows Workflow Foundation 4Felice Pescatore
 
April 2010 - Seam unifies JEE5
April 2010 - Seam unifies JEE5April 2010 - Seam unifies JEE5
April 2010 - Seam unifies JEE5JBug Italy
 
Seam unifies Java EE by Massimiliano Ciccazzo
Seam unifies Java EE by Massimiliano CiccazzoSeam unifies Java EE by Massimiliano Ciccazzo
Seam unifies Java EE by Massimiliano CiccazzoJava User Group Roma
 
Il programmatore e le sue api
Il programmatore e le sue apiIl programmatore e le sue api
Il programmatore e le sue apiBetter Software
 
Webcast - Introduzione a Visual Studio Online
Webcast - Introduzione a Visual Studio OnlineWebcast - Introduzione a Visual Studio Online
Webcast - Introduzione a Visual Studio OnlineDavide Benvegnù
 
Design patterns - parte 1
Design patterns - parte 1Design patterns - parte 1
Design patterns - parte 1Fabio Armani
 
Struttin' on, novità in casa Struts
Struttin' on, novità in casa StrutsStruttin' on, novità in casa Struts
Struttin' on, novità in casa StrutsMarcello Teodori
 
Tesi Discussione
Tesi DiscussioneTesi Discussione
Tesi DiscussioneYeser Rema
 

Semelhante a Aspect Oriented Programming (20)

Machine learning models continuous deployment on azure using devops
Machine learning models continuous deployment on azure using devopsMachine learning models continuous deployment on azure using devops
Machine learning models continuous deployment on azure using devops
 
Alm pills - Sessione community tour Dot Net Umbria 2011
Alm pills - Sessione community tour Dot Net Umbria 2011Alm pills - Sessione community tour Dot Net Umbria 2011
Alm pills - Sessione community tour Dot Net Umbria 2011
 
2011.02.19 Introducing F#
2011.02.19 Introducing F#2011.02.19 Introducing F#
2011.02.19 Introducing F#
 
Modulo 6 Spring Framework Core E Aop
Modulo 6 Spring Framework Core E AopModulo 6 Spring Framework Core E Aop
Modulo 6 Spring Framework Core E Aop
 
Generazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptxGenerazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptx
 
Idiomatic Domain Driven Design
Idiomatic Domain Driven DesignIdiomatic Domain Driven Design
Idiomatic Domain Driven Design
 
DotNetToscana - Sessione TypeScript
DotNetToscana - Sessione TypeScriptDotNetToscana - Sessione TypeScript
DotNetToscana - Sessione TypeScript
 
SPRING - MAVEN - REST API (ITA - Luglio 2017)
SPRING - MAVEN - REST API (ITA - Luglio 2017)SPRING - MAVEN - REST API (ITA - Luglio 2017)
SPRING - MAVEN - REST API (ITA - Luglio 2017)
 
Progetti per l'esame negli ITIS
Progetti per l'esame negli ITISProgetti per l'esame negli ITIS
Progetti per l'esame negli ITIS
 
Windows Workflow Foundation 4
Windows Workflow Foundation 4Windows Workflow Foundation 4
Windows Workflow Foundation 4
 
April 2010 - Seam unifies JEE5
April 2010 - Seam unifies JEE5April 2010 - Seam unifies JEE5
April 2010 - Seam unifies JEE5
 
Seam unifies Java EE by Massimiliano Ciccazzo
Seam unifies Java EE by Massimiliano CiccazzoSeam unifies Java EE by Massimiliano Ciccazzo
Seam unifies Java EE by Massimiliano Ciccazzo
 
Software_analyst
Software_analystSoftware_analyst
Software_analyst
 
Il programmatore e le sue api
Il programmatore e le sue apiIl programmatore e le sue api
Il programmatore e le sue api
 
Owasp parte1-rel1.1
Owasp parte1-rel1.1Owasp parte1-rel1.1
Owasp parte1-rel1.1
 
Webcast - Introduzione a Visual Studio Online
Webcast - Introduzione a Visual Studio OnlineWebcast - Introduzione a Visual Studio Online
Webcast - Introduzione a Visual Studio Online
 
Design patterns - parte 1
Design patterns - parte 1Design patterns - parte 1
Design patterns - parte 1
 
Struttin' on, novità in casa Struts
Struttin' on, novità in casa StrutsStruttin' on, novità in casa Struts
Struttin' on, novità in casa Struts
 
Tesi Discussione
Tesi DiscussioneTesi Discussione
Tesi Discussione
 
DDive11 - xpages
DDive11 - xpagesDDive11 - xpages
DDive11 - xpages
 

Aspect Oriented Programming