스프링내에서 @Aspect
@Aspect
스프링에선 aop(관점 중심 프로그래밍)을 차용해서 프록시를 적용할 수 있게 했다.
프록시 적용?
- 프록시 적용을 위해서 pointcut과 advice로 구성을하고 이 두개를 묶어서 advisor이라고 한다.
- 더 정확하게는 advisor를 스트링 빈으로 등록하기 위함이다.
- pointcut이 매칭이 제대로 될때만 적용된다,.
advisor = Pointcut + advice
- Pointcut
- 메서드 실행 시점의 상세 스펙을 정의한 것을 의미한다.
- advice Method가 적용될 비지니스 메소드를 필터링할 때 사용해준다.
- 실행 범위
- advice
- 실질적으로 부가 기능을 담을 구현체로 쉽게 말하면 어떤 일을 할지에 대한 정의를 의미한다.
- 쉽게 표현하자면 자바 클래스 메소드 안에 있는 메소드 로직을 advice라고 생각하면 된다.(실제 동작은 메소드 안에 있는 코드들에 의해서 진행되기 때문..)
- 실제 실행 로직
@Aspect 동작 방식
- 실행: 스프링 애플리케이션 로딩 시점에 자동 프록시 생성기를 호출한다.
- 모든 @Aspect 빈 조회: 자동 프록시 생성기는 스프링 컨테이너에서 @Aspect 애노테이션이 붙은 스프링 빈을 모두 조회한다.
- 어드바이저 생성: @Aspect 어드바이저 빌더를 통해 @Aspect 애노테이션 정보를 기반으로 어드바이저를 생성한다.
- @Aspect 기반 어드바이저 저장: 생성한 어드바이저를 @Aspect 어드바이저 빌더 내부에 저장한다.
@Aspect
- 애플리케이션 전반에 관여하는 경우에 사용하여 이를 횡단 관심사라고 한다.
- ex)logging
'Back-End > Spring' 카테고리의 다른 글
스프링 - AOP(부제: AOP란 무엇이고 스프링이 제공하는 AOP는 어떻게 다른지 알아보자) (0) | 2023.03.17 |
---|---|
[Spring DB][자바 예외] - 체크, 언체크 예외의 활용 그리고 예외 포함 스택 트레이스 (0) | 2022.07.20 |
[Spring DB][자바 예외] - 자바의 예외 이해 (0) | 2022.07.12 |
[Spring DB][커넥션풀과 데이터소스 이해] - DataSource의 이해 (0) | 2022.06.24 |
[Spring DB][커넥션풀과 데이터소스 이해] - 커넥션풀과 데이터소스란 무엇인가? (0) | 2022.06.22 |