- Spring AOP Tutorial
- Spring AOP - Home
- Spring AOP - Overview
- Spring AOP - Environment Setup
- Spring AOP - Core Concepts
- Spring AOP - Advice Types
- Spring AOP - Implementations
- By XML Configuration Examples
- Spring AOP - Application
- Spring AOP - Pointcut Methods
- Spring AOP - Before Advice
- Spring AOP - After Advice
- Spring AOP - After Returning Advice
- Spring AOP - After Throwing Advice
- Spring AOP - Around Advice
- By Annotation Examples
- Spring AOP - Application
- Spring AOP - Pointcut Methods
- Spring AOP - Before Aspect
- Spring AOP - After Advice
- Spring AOP - After Returning Advice
- Spring AOP - After Throwing Advice
- Spring AOP - Around Advice
- Spring AOP Advanced
- Spring AOP - Proxy
- Spring AOP - Custom Annotation
- Spring AOP Useful Resources
- Spring AOP - Quick Guide
- Spring AOP - Useful Resources
- Spring AOP - Discussion
Spring AOP - Overview
One of the key components of Spring Framework is the Aspect Oriented Programming (AOP) framework. Aspect Oriented Programming entails breaking down program logic into distinct parts called so-called concerns. The functions that span multiple points of an application are called cross-cutting concerns. These cross-cutting concerns are conceptually separate from the application's business logic. There are various common good examples of aspects such as logging, auditing, declarative transactions, security, caching, etc.
The key unit of modularity in OOP is the class, whereas in AOP the unit of modularity is the aspect. Dependency Injection helps you decouple your application objects from each other, while AOP helps you decouple cross-cutting concerns from the objects that they affect. AOP is like triggers in programming languages such as Perl, .NET, Java, and others.
Spring AOP module lets interceptors intercept an application. For example, when a method is executed, you can add extra functionality before or after the method execution.