스프링 ch3-18 - AOP의 개념과 용어

서현우·2022년 7월 7일
0

스프링의정석

목록 보기
76/85

ch3-18 - AOP의 개념과 용어

  • AOP 개념 - 부가기능을 동적으로 추가해주는 기술
  • AOP 용어 - target, advice, proxy, weaving, join point, pointcut
  • Advice 애너테이션의 종류 - @Around, @Before, @After, @AfterReturning, @AfterThrowing
  • pointcut에 대해 - advice(부가기능)가 추가될 메서드를 지정하기 위한 패턴
  • AOP 사용을 위한 Maven dependency - aspectjrt, spring-aop, aspectjweaver

공통 코드의 분리

  • 핵심기능과 부가기능을 분리 후 호출.
  • 특정 패턴이나, 애너테이션이 붙었을 때 AOP작업을 하도록 할 수 있다.

코드를 자동으로 추가한다면, 어디에?

BeforeAdvice - 맨앞, AfterAdvice - 맨뒤, AroundAdvice - 양쪽에 추가

AOP(Aspect Oriented Programming)란?

  • 관점 지향 프로그래밍.
  • 부가 기능(advice)을 동적(실행 중에)으로 추가해주는 기술.
  • 메서드의 시작 또는 끝에 자동으로 코드(advice)를 추가.
  • OOP, AOP 둘 다 변경에 유리한 코드를 만들기 위해 분리하는 것.

AOP관련 용어

  • target - advice가 추가될 객체. 핵심 기능.
  • advice - target에 동적으로 추가될 부가 기능(코드).
  • proxy - target에 advice가 동적으로 추가되어 생성된 객체.
  • weaving - target에 advice를 꿰매서 proxy를 만드는 것.
  • join point - advice가 추가(join)될 대상(메서드).
  • pointcut - join point들을 정의한 패턴.

Advice의 종류

  • Advice의 설정은 XML과 애너테이션, 두 가지 방법으로 가능.

@Around - 메서드의 시작과 끝에 추가되는 부가 기능
@Before
@After
@AfterReturning - 예외가 발생하지 않았을 때, 실행되는 부가 기능.
@AfterThrowing - 예외가 발생했을 때, 실행되는 부가 기능.

pointcut

  • advice가 추가될 메서드를 지정하기 위한 패턴.
  • execution(반환타입 패키지명.클래스명.메서드명(매개변수 목록))
@Around("execution(* com.fastcamput.ch3.aop.*.*(..))")

pom.xml

  • aspectjrt, spring-aop, aspectjweaver 추가
profile
안녕하세요!!

0개의 댓글