AOP라는 패러다임

AOP 용어들

구분 설명
Before Advice Target의 JoinPoint를
After Returning Advice
After Throwing Advice
After Advice
Around Advice
구분 설명
execution(@execution)
within(@whthin)
this
args(@args)
@annotation

AOP 실습

예제 프로젝트 생성

pom.xml 수정

<properties>
    <java-version>11</java-version>
    <org.springframework-version>5.0.7.RELEASE</org.springframework-version>
    <org.aspectj-version>1.9.0</org.aspectj-version>
    <org.slf4j-version>1.7.25</org.slf4j-version>
</properties>

pom.xml의 라이브러리 추가

<dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-test</artifactId>
   <version>${org.springframework-version}</version>
</dependency>

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.32</version>
</dependency>

<!-- Test -->
<dependency>
   <groupId>junit</groupId>
   <artifactId>junit</artifactId>
   <version>4.13.2</version>
   <!-- <scope>test</scope> -->
</dependency>