SlideShare a Scribd company logo
Spring Fundamentals Doing it right ….inversely
Agenda Why DI and SL vs DI. Dependency injection and The Spring IoC container Various approaches of Bean Configuration Bean scopes Bean Lifecycle AOP with Spring Spring AspectJ integration Testing with Spring Beyond Spring Basics
Building OO systems Its all about Objects Its all about Instantiating objects Its all about communicating between the objects Its all about collaborating objects  Its all about managing objects Its all about extending objects Its all about monitoring objects
But the problem is Everything done By  Developer
What developers end up Writing to much boilerplate Coding the same patterns again Duplications Managing infrastructure Entangled interfaces Complicated Dependencies
End up spending time
You eventually end up with
S.O.L.I.D  The Single Responsibility Principle The Open Closed Principle The Liskov Substitution Principle The Interface Segregation Principle The Dependency Inversion Principle
SRP: class should have one, and only one, reason to change
OCP: extend a classes behavior, without modifying it
LSP - Derived classes must be substitutable for their base classes
ISP: Make client specific fine grained interfaces
DIP: Depend on abstractions, not on concretions
DI Approaches Pre DI Construction by hand Factory Pattern Service Locator
DI Frameworks Hollywood principle Objects are handed to you New and Factories  - Not your concern Well managed Beans First class Bean scope support No/less boilerplate  Testability dependency Injector dependency Client
Spring Framework
Spring IOC Container Instantiates Beans Assembles Beans Manages Beans Configure dependencies Injects  dependencies
Containers heirarchy
Bean Configurations XML Configuration Java Configuration Annotation-driven configuration Dynamic language configuration support ,[object Object]
Beanshell
JRuby,[object Object]
Bean scopes Singleton Prototype Request Session Global Session Supports Custom Scopes
Bean Lifecycle
Lifecycle method calls
Aspect oriented programming Originated at Xerox PARC during 95-96 under Gregorkiczales. Purposed towards OO Principles advancements for Modularization Separation of concerns Non intrusive plug-ability ,[object Object],Proxy Decorator
Proxy Pattern “provide a surrogate or placeholder for another object  to control access to it “ [GOF 94]
Manifestation of proxy Virtual proxy Remote proxy Security proxy Smart Reference proxy
Decorator Pattern “Allows new/additional behavior to be added to an existing class dynamically” [Wikipedia]
Decorator manifestation //Construct the BufferedInputStream object            bufferedInput = new BufferedInputStream(new FileInputStream(filename));
Graduate to AOP Enforce inheritance to achieve concern of separation? Specification like EJB have weird inheritance, your class never implement your interface ..huh 	Why not use POJOs and apply CCC on them thru runtime magic ?
OOP vs AOP
AOP Lingo and Jargons Aspect – The CCC that can be modularized Advice – Functionality of an Aspect (logging) Jointpoint – Opportunities in program execution to apply advice Pointcut – Exact jointpoint where advice are weaved Weaving :linking objects with other applicatin objects
Spring AOP Supports only method join points Supports only load-time weaving Advise types Before Around After –returning After–throwing After – finally
Spring @AspectJIntegration Annotation based support as of AspectJ 5.x @Aspect @Pointcut @ execution @ within @ target @annotation
AOP applications Trace aspect Performance monitoring aspect Auditing aspect Transaction managementaspect Logging aspect Security aspect Caching aspect
Testing with Spring Support for Unit and integration testing Support JUnit 3.8.x/4.x and TestNG. Readymade mocks for most JEE dependencies like JNDI, Servlet API, etc Spring TestContextFramework Supports Fixture wiring transparently Support bean caching Transaction management Extensive spring-specific support
Beyond Spring basics Spring MVC Spring DAO Spring ORN Spring JEE (JMS/JCA/JMX/Remoting) Spring Web flow Spring ROO Spring Integration Spring Security
Books
Did you get it

More Related Content

What's hot

SOLID Design Principles
SOLID Design PrinciplesSOLID Design Principles
SOLID Design PrinciplesSamuel Breed
 
Solid and ioc principles
Solid and ioc principlesSolid and ioc principles
Solid and ioc principles
eleksdev
 
Refactoring Applications using SOLID Principles
Refactoring Applications using SOLID PrinciplesRefactoring Applications using SOLID Principles
Refactoring Applications using SOLID Principles
Steven Smith
 
AOP in C# 2013
AOP in C# 2013AOP in C# 2013
AOP in C# 2013Antya Dev
 
Solid principles of oo design
Solid principles of oo designSolid principles of oo design
Solid principles of oo design
Confiz
 

What's hot (6)

SOLID Design Principles
SOLID Design PrinciplesSOLID Design Principles
SOLID Design Principles
 
Chapter1
Chapter1Chapter1
Chapter1
 
Solid and ioc principles
Solid and ioc principlesSolid and ioc principles
Solid and ioc principles
 
Refactoring Applications using SOLID Principles
Refactoring Applications using SOLID PrinciplesRefactoring Applications using SOLID Principles
Refactoring Applications using SOLID Principles
 
AOP in C# 2013
AOP in C# 2013AOP in C# 2013
AOP in C# 2013
 
Solid principles of oo design
Solid principles of oo designSolid principles of oo design
Solid principles of oo design
 

Similar to Spring fundamentals

1669609053088_oops_final.pptx
1669609053088_oops_final.pptx1669609053088_oops_final.pptx
1669609053088_oops_final.pptx
PandeeswariKannan
 
Object Oriented Concepts and Principles
Object Oriented Concepts and PrinciplesObject Oriented Concepts and Principles
Object Oriented Concepts and Principles
deonpmeyer
 
Object Oriented Concepts in Real Projects
Object Oriented Concepts in Real ProjectsObject Oriented Concepts in Real Projects
Object Oriented Concepts in Real Projects
EPAM
 
OO Design Principles
OO Design PrinciplesOO Design Principles
OO Design Principles
Anju Kanjirathingal
 
Jump Start To Ooad And Design Patterns
Jump Start To Ooad And Design PatternsJump Start To Ooad And Design Patterns
Jump Start To Ooad And Design Patterns
Lalit Kale
 
Jump start to OOP, OOAD, and Design Pattern
Jump start to OOP, OOAD, and Design PatternJump start to OOP, OOAD, and Design Pattern
Jump start to OOP, OOAD, and Design Pattern
Nishith Shukla
 
Design poo my_jug_en_ppt
Design poo my_jug_en_pptDesign poo my_jug_en_ppt
Design poo my_jug_en_ppt
agnes_crepet
 
Design Patterns Course
Design Patterns CourseDesign Patterns Course
Design Patterns Course
Ahmed Soliman
 
Spring Framework
Spring FrameworkSpring Framework
Spring Framework
NexThoughts Technologies
 
Android architecture
Android architectureAndroid architecture
Android architecture
Vandana Srivastava
 
AOP-IOC made by Vi Quoc Hanh and Vu Cong Thanh in SC Team
AOP-IOC made by Vi Quoc Hanh and Vu Cong Thanh in SC TeamAOP-IOC made by Vi Quoc Hanh and Vu Cong Thanh in SC Team
AOP-IOC made by Vi Quoc Hanh and Vu Cong Thanh in SC Team
Thuy_Dang
 
Aspect Oriented Programming
Aspect Oriented ProgrammingAspect Oriented Programming
Aspect Oriented Programming
Anumod Kumar
 
Object- Relational Persistence in Smalltalk
Object- Relational Persistence in SmalltalkObject- Relational Persistence in Smalltalk
Object- Relational Persistence in Smalltalk
ESUG
 
Practical OOP In Java
Practical OOP In JavaPractical OOP In Java
Practical OOP In Java
wiradikusuma
 
Creativity vs Best Practices
Creativity vs Best PracticesCreativity vs Best Practices
Creativity vs Best Practices
Supun Dissanayake
 
AOP
AOPAOP
Object Oriented Programming All Unit Notes
Object Oriented Programming All Unit NotesObject Oriented Programming All Unit Notes
Object Oriented Programming All Unit Notes
BalamuruganV28
 

Similar to Spring fundamentals (20)

1669609053088_oops_final.pptx
1669609053088_oops_final.pptx1669609053088_oops_final.pptx
1669609053088_oops_final.pptx
 
Object Oriented Concepts and Principles
Object Oriented Concepts and PrinciplesObject Oriented Concepts and Principles
Object Oriented Concepts and Principles
 
Object Oriented Concepts in Real Projects
Object Oriented Concepts in Real ProjectsObject Oriented Concepts in Real Projects
Object Oriented Concepts in Real Projects
 
OO Design Principles
OO Design PrinciplesOO Design Principles
OO Design Principles
 
Jump Start To Ooad And Design Patterns
Jump Start To Ooad And Design PatternsJump Start To Ooad And Design Patterns
Jump Start To Ooad And Design Patterns
 
Jump start to OOP, OOAD, and Design Pattern
Jump start to OOP, OOAD, and Design PatternJump start to OOP, OOAD, and Design Pattern
Jump start to OOP, OOAD, and Design Pattern
 
Design poo my_jug_en_ppt
Design poo my_jug_en_pptDesign poo my_jug_en_ppt
Design poo my_jug_en_ppt
 
Design Patterns Course
Design Patterns CourseDesign Patterns Course
Design Patterns Course
 
Spring Framework
Spring FrameworkSpring Framework
Spring Framework
 
Android architecture
Android architectureAndroid architecture
Android architecture
 
Gof design patterns
Gof design patternsGof design patterns
Gof design patterns
 
AOP-IOC made by Vi Quoc Hanh and Vu Cong Thanh in SC Team
AOP-IOC made by Vi Quoc Hanh and Vu Cong Thanh in SC TeamAOP-IOC made by Vi Quoc Hanh and Vu Cong Thanh in SC Team
AOP-IOC made by Vi Quoc Hanh and Vu Cong Thanh in SC Team
 
Aspect Oriented Programming
Aspect Oriented ProgrammingAspect Oriented Programming
Aspect Oriented Programming
 
Object- Relational Persistence in Smalltalk
Object- Relational Persistence in SmalltalkObject- Relational Persistence in Smalltalk
Object- Relational Persistence in Smalltalk
 
Practical OOP In Java
Practical OOP In JavaPractical OOP In Java
Practical OOP In Java
 
Creativity vs Best Practices
Creativity vs Best PracticesCreativity vs Best Practices
Creativity vs Best Practices
 
Spring 2
Spring 2Spring 2
Spring 2
 
AOP
AOPAOP
AOP
 
Object Oriented Programming All Unit Notes
Object Oriented Programming All Unit NotesObject Oriented Programming All Unit Notes
Object Oriented Programming All Unit Notes
 
Spring Framework Rohit
Spring Framework RohitSpring Framework Rohit
Spring Framework Rohit
 

Recently uploaded

PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
Vlad Stirbu
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
Alex Pruden
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 

Recently uploaded (20)

PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 

Spring fundamentals

  • 1. Spring Fundamentals Doing it right ….inversely
  • 2. Agenda Why DI and SL vs DI. Dependency injection and The Spring IoC container Various approaches of Bean Configuration Bean scopes Bean Lifecycle AOP with Spring Spring AspectJ integration Testing with Spring Beyond Spring Basics
  • 3. Building OO systems Its all about Objects Its all about Instantiating objects Its all about communicating between the objects Its all about collaborating objects Its all about managing objects Its all about extending objects Its all about monitoring objects
  • 4. But the problem is Everything done By Developer
  • 5. What developers end up Writing to much boilerplate Coding the same patterns again Duplications Managing infrastructure Entangled interfaces Complicated Dependencies
  • 8. S.O.L.I.D The Single Responsibility Principle The Open Closed Principle The Liskov Substitution Principle The Interface Segregation Principle The Dependency Inversion Principle
  • 9. SRP: class should have one, and only one, reason to change
  • 10. OCP: extend a classes behavior, without modifying it
  • 11. LSP - Derived classes must be substitutable for their base classes
  • 12. ISP: Make client specific fine grained interfaces
  • 13. DIP: Depend on abstractions, not on concretions
  • 14. DI Approaches Pre DI Construction by hand Factory Pattern Service Locator
  • 15. DI Frameworks Hollywood principle Objects are handed to you New and Factories - Not your concern Well managed Beans First class Bean scope support No/less boilerplate Testability dependency Injector dependency Client
  • 17. Spring IOC Container Instantiates Beans Assembles Beans Manages Beans Configure dependencies Injects dependencies
  • 19.
  • 21.
  • 22. Bean scopes Singleton Prototype Request Session Global Session Supports Custom Scopes
  • 25.
  • 26. Proxy Pattern “provide a surrogate or placeholder for another object to control access to it “ [GOF 94]
  • 27. Manifestation of proxy Virtual proxy Remote proxy Security proxy Smart Reference proxy
  • 28. Decorator Pattern “Allows new/additional behavior to be added to an existing class dynamically” [Wikipedia]
  • 29. Decorator manifestation //Construct the BufferedInputStream object            bufferedInput = new BufferedInputStream(new FileInputStream(filename));
  • 30. Graduate to AOP Enforce inheritance to achieve concern of separation? Specification like EJB have weird inheritance, your class never implement your interface ..huh Why not use POJOs and apply CCC on them thru runtime magic ?
  • 32. AOP Lingo and Jargons Aspect – The CCC that can be modularized Advice – Functionality of an Aspect (logging) Jointpoint – Opportunities in program execution to apply advice Pointcut – Exact jointpoint where advice are weaved Weaving :linking objects with other applicatin objects
  • 33. Spring AOP Supports only method join points Supports only load-time weaving Advise types Before Around After –returning After–throwing After – finally
  • 34. Spring @AspectJIntegration Annotation based support as of AspectJ 5.x @Aspect @Pointcut @ execution @ within @ target @annotation
  • 35. AOP applications Trace aspect Performance monitoring aspect Auditing aspect Transaction managementaspect Logging aspect Security aspect Caching aspect
  • 36. Testing with Spring Support for Unit and integration testing Support JUnit 3.8.x/4.x and TestNG. Readymade mocks for most JEE dependencies like JNDI, Servlet API, etc Spring TestContextFramework Supports Fixture wiring transparently Support bean caching Transaction management Extensive spring-specific support
  • 37. Beyond Spring basics Spring MVC Spring DAO Spring ORN Spring JEE (JMS/JCA/JMX/Remoting) Spring Web flow Spring ROO Spring Integration Spring Security
  • 38. Books