programming study/B-Spring

spring-AOP

gu9gu 2022. 9. 20. 01:21

AOP

 

기본 형태

[Spring] AOP란? 용어 정리, 사용 방법 (tistory.com)

@Aspect
public class 어노테이션 이름 {

   @Around("execution(어노테이션 적용 대상 표현식)")
   //@Around("@annotation(TestAnnotation)")
   pivate Object 메서드 이름 (ProceedingJoinPoint joinPoint) throws Throwable {
      Object joinPoint = joinPoint.proceed();
      return joinPoint
   }
}

 

 

 

1) Target : 핵심 기능을 담고 있는 모듈로 부가기능의 대상을 의미

 

2) Aspect : 공통적으로 정의될 기능을 의미

 @Aspect 어노테이션 - 공통 기능 메서드가 있는 클래스임을 의미, 이 클래스는 공통으로 실행할 수 있다는 의미

 

3) Advice : 타겟에 제공할 부가기능을 담고 있는 모듈

 @Around, @Before, @AfterReturning, @AfterThrowing,  @After

 

4) PointCut : 어떤 메서드를 대상으로 실행할지를 정의

 execution, @annotation으로 대상 설정

 

5) JoinPoint : 어드바이스가 적용될 수 있는 위치

 joinPoint.proceed(); - 대상을 실행.

 

 

 

 

어노테이션 적용 대상 표현식

ex) @Around("execution(*com.example.demo.controller.*Controller.*(..)

  1) * : 모든 반환형

  2) com.example.demo.controller.*Controller.* : com.example.demo.controller 경호 하위의 Controller로 끝나는 클래스들의 모든 메서드

  3) (..) : 모든 인자 형태

 

 

 

 

 

 

 

 

참고)

표현식 - [Spring/스프링] AOP의 포인트컷(Pointcut) execution() 표현식 사용법 (tistory.com)

 

[Spring/스프링] AOP의 포인트컷(Pointcut) execution() 표현식 사용법

⚡️포인트컷(Pointcut) 포인트컷이란 수많은 비즈니스 메소드 중에서 원하는 특정 메소드에게만 횡단 관심에 해당하는 공통 기능을 수행시키기 위해 클래스와 패키지, 메소드 시그니처를 이용해

lasbe.tistory.com

사용 예 - [spring] AOP를 이용하여 controller의 input data 자동 로그 기록하기 (tistory.com)

 

[spring] AOP를 이용하여 controller의 input data 자동 로그 기록하기

스프링 부트에서 애플리케이션을 만들었을 때 로그기록이 상당히 귀찮았던 경험이 있을 거라고 생각합니다. 그런데 이 로깅을 자동으로 해주는 녀석이 있다면 얼마나 편해질까요? 스프링의 AOP(

steady-hello.tistory.com

https://onlyformylittlefox.tistory.com/16

 

SpringBoot AOP 이해 - AOP(2)

오늘은 AOP 두번째 시간인데요 잠시 이전시간의 정리를 한번 해보도록 하겠습니다!! AOP는 흩어진 공통 기능들을 한데모아 관리하는 프로그래밍 방식으로 이해했어요.. 깊게 공부하고 이해하면

onlyformylittlefox.tistory.com

https://exhibitlove.tistory.com/275

 

[spring boot] AOP 설정

출처 : jeong-pro.tistory.com/171 Spring AOP (Aspect Oriented Programming) - AOP는 관점 지향 프로그래밍으로 "기능을 핵심 비즈니스 기능과 공통 기능으로 '구분'하고, 공통 기능을 개발자의 코드 밖에서..

exhibitlove.tistory.com

https://hanbi97.tistory.com/140

 

1. 프로젝트 설정 / 라이브러리 / 여러 설정들

펀딩 프로젝트 하면서 책과 구글의 한계를 느낌...ㅠㅠㅠ 그래서 강의 두개 질렀ㄸㅏ 이 강사님 넘 좋음 기본적인건 대충 알아서 앞쪽은 슥슥 들었음 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%8

hanbi97.tistory.com