Aspect Oriented Programming (AOP)

Introduction

  • 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

Terminology

  • 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

Point Cut

  • The expression format: Modifier(Optional) , Return type , Path of class, method(params)

  • (*) means any, method name(..) means any type and number of params

Advice

  • 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

Last updated

Was this helpful?