Aspect Oriented Programming (AOP)
Last updated
Was this helpful?
Last updated
Was this helpful?
Spring AOP allows developers to separate the implementation of these cross-cutting concerns (applying to different classes) from the business logic of the application, making the code more modular and easier to understand.
If we call want to add some common logic, such as logging, security to the method, it is not ideal to add it directly into method, as there are much methods in the application
Moreover, it is very time-wasting to update the method one by one if we need to update the common logic
So that, we separate the common logic into aspect class and define which method which timing should apply
We can modify the configuration by updating few lines easily instead of modifying the method one by one when updated the common logic
Advice: the action that perform before getting the result from method
Point Cut: the expression that declare the condition of triggering the advice
Join Point: To get back the method name of method and the relative parameters
Order: To declare which aspect java class will be executed first
The expression format: Modifier(Optional) , Return type , Path of class, method(params)
(*) means any, method name(..) means any type and number of params
There are 5 types of advice
Before: before the method is executed
After: after the method is executed
AfterReturning: after the method is executed successfully, we can obtain the result and do some stuff which can change the result
AfterThrowing: after the method is executed with exception, we can obtain the exception
Around: The advice will be executed before and after the method execution, and also can handle the exception by return the default value to the main program