The first thing I want to say is what is a AOP? So we need to know about the definition of it, yes starting now.
Aspect Oriented Programming (AOP) was originally developed in the late 1980’s at the Xerox Palo Alto Research Center (PARC). All software that is developed has concerns. A concern is a goal, concept or area of interest. In most software there are two types of concerns, core concerns and system level concerns. Previous development methodologies such as Object Oriented Programming (OOP) have done a good job of encapsulating core concerns into modules or classes. The issue with Object Oriented Programming however occurs when concerns need to span more than one module or class. These system level concerns are also known as cross cutting concerns. Common examples of cross cutting concerns are logging, security and tracing. Using Object Oriented Programming these concerns would be coded and added to each class and module where required, making the resulting code harder to read, difficult to maintain, understand and reuse.