| Introduction |
What is AOP, Advantages, Use Cases |
✅ |
|
|
|
| Terminology |
Aspect, JoinPoint, Pointcut, Advice, Weaving |
✅ |
✅ |
|
|
| Types of Advice |
Before, After, AfterReturning, AfterThrowing, Around |
✅ |
✅ |
✅ |
|
| Pointcut Expressions |
Execution, Within, Args, Annotation, Bean |
|
✅ |
✅ |
|
| Spring AOP Architecture |
Proxy-based AOP, Target object, Advice chain |
|
✅ |
✅ |
✅ |
| Proxy Types |
JDK Dynamic Proxy, CGLIB Proxy |
✅ |
✅ |
✅ |
|
| AspectJ Integration |
@Aspect annotation, Spring configuration, XML support |
|
✅ |
✅ |
✅ |
| Weaving |
Compile-time, Load-time, Runtime |
|
✅ |
✅ |
✅ |
| Annotations in Spring AOP |
@Before, @After, @AfterReturning, @AfterThrowing, @Around |
✅ |
✅ |
✅ |
|
| Order of Aspects |
@Order annotation, precedence, multiple aspects |
|
✅ |
✅ |
✅ |
| Introduction to JoinPoints |
Accessing method parameters, signature, target object |
✅ |
✅ |
✅ |
|
| AspectJ Expression Language |
Execution(), Within(), Args(), @annotation(), this(), target() |
|
✅ |
✅ |
✅ |
| Introduction to Advice Methods |
Advice method parameters, returning values, handling exceptions |
✅ |
✅ |
✅ |
|
| AOP Use Cases |
Logging, Transaction Management, Security, Performance Monitoring |
✅ |
✅ |
✅ |
✅ |
| Limitations of Spring AOP |
Cannot intercept calls within same class, Proxy limitations |
|
✅ |
✅ |
✅ |
| Testing Aspects |
Unit testing, Mocking dependencies, AspectJ testing tools |
|
✅ |
✅ |
✅ |
| Exception Handling in Advice |
AfterThrowing, handling custom exceptions |
|
✅ |
✅ |
✅ |
| Performance Considerations |
Proxy creation cost, advice overhead, best practices |
|
✅ |
✅ |
✅ |
| Dynamic Pointcuts |
Runtime matching, Conditional pointcuts |
|
✅ |
✅ |
✅ |
| Introduction to AOP ProxyFactory |
ProxyFactoryBean, programmatic proxy creation |
|
✅ |
✅ |
✅ |
| Spring Boot AOP Integration |
Auto-configuration, Aspect scanning, starter dependencies |
✅ |
✅ |
✅ |
✅ |
| Nested Aspects |
Combining multiple aspects, advice chaining order |
|
✅ |
✅ |
✅ |
| Introductions (AOP feature) |
@DeclareParents, Introduction advice |
|
✅ |
✅ |
✅ |
| Security Aspects |
Role-based access, Method security with AOP |
|
✅ |
✅ |
✅ |
| Best Practices |
Avoid overusing AOP, maintain readability, minimize cross-cutting complexity |
✅ |
✅ |
✅ |
✅ |
| Advanced Topics |
Load-time weaving, Aspect precedence, custom pointcut expressions |
|
✅ |
✅ |
✅ |