Step 5- AOP- Aspect Oriented Programming

AOP- Aspect Oriented Programming-  it provides extra functionality over method execution.
Aspect- It’s a class, which contains advices, join points, it can be configured using configuration file,  or spring AspectJ integratio.
Join point- It’s a point, where we can plugin aop aspect, spring only supports execution joint type.
Advice – It represents the methods to be executed at a particular join point.
Pointcut- It represents the expression which determines execution of advice.
Introduction – It represents adding new methods.
Target Object- It’s an object on which advices are applied, spring uses proxied object.
Weaving – It’s a process of linking aspects with other application type/object to create the advised proxy objects.
AOP advice types-
1- Before- 
2- After 
3- After-returning 
4- After-returning
5- Around