What is AOP ?
"AOP(Aspect Oriented Programming) is programming way, that helps to increase modularity and avoids strong coupling of code by separating cross-cutting concerns". It is one of the key components of Spring Framework.
Cross-cutting concern is a code logic which is scattered throughout the application and it affects entire application. Transaction management and logging are best examples of cross cutting concerns.
"The key unit of modularity in OOP is class, whereas aspect is the unit of modularity in AOP "