Advice 종류 @Around : 메서드 호출 전후에 수행, 가장 강력한 어드바이스, 조인 포인트 실행 여부 선택, 반환 값 변환, 예외 변환 등이 가능 @Before : 조인 포인트 실행 이전에 실행된다. @AfterReturning : 조인 포인트가 정상 완료후 실행된다. @AfterThrowing : 메서드가 예외를 던지는 경우 실행된다. @After : 조인 포인트가 정상 또는 예외에 관계없이 실행(finally)된다. 아래 예제를 살펴보면서 좀 더 깊이 학습해보자! @Slf4j @Aspect public class AspectAdvice { @Around("com.hyuuny.advanced.order.aop.Pointcuts.orderAndService()") public Object doT..
AOP 용어는 보고 또 봐도 낯설기만하다. 이 기회에 AOP 용어를 정리해보자! 조인 포인트(Join point) 어드바이스가 적용될 수 있는 위치(메서드 실행 지점, 생성자 호출, 필드 값 접근, static 메서드 접근 등) 조인 포인트는 추상적인 개념이다. AOP를 적용할 수 있는 모든 지점이라 생각하면 된다. 스프링 AOP는 프록시 방식을 사용하므로 조인 포인트는 항상 메소드 실행 지점으로 제한된다. 포인트컷(Pointcut) 조인 포인트 중에서 어드바이스가 적용될 위치를 선별하는 기능 주로 AspectJ 표현식을 사용해서 지정 프록시를 사용하는 스프링 AOP는 메서드 실행 지점만 포인트컷으로 선별 가능 타켓(Target) 어드바이스를 받는 객체 어드바이스(Advice) 부가 기능 특정 조인 포인..
@Aspect 프록시 스프링 애플리케이션에 프록시를 적용하려면 포인트컷과 어드바이스로 구성되어 있는 어드바이저(Advisor)를 만들어서 스프링 빈으로 등록하면 된다. 그러면 자동 프록시 생성기가 모두 자동으로 처리해준다. @Aspect는 관점 지향 프로그래밍(AOP)을 가능하게 하는 AspectJ 프로젝트에서 제공하는 애노테이션이다. 스프링은 @Aspect 애노테이션으로 매우 편리하게 포인트컷과 어드바이스로 구성되어 있는 어드바이저 생성 기능을 지원한다. Example code @Slf4j @RequiredArgsConstructor @Aspect public class LogTraceAspect { private final LogTrace logTrace; @Around("execution(* com..
포인트컷 포인트컷은 어디에 부가 기능을 적용할지 판단하는 필터링 로직으로, 주로 클래스와 메서드 이름으로 필터링한다. 어떤 포인트(Point)에 기능을 적용할지 하지 않을지 잘라서(cut) 구분하는 것이라 이해하면 된다. public interface Pointcut { ClassFilter getClassFilter(); MethodMatcher getMethodMatcher(); } public interface ClassFilter { boolean matches(Class clazz); } public interface MethodMatcher { boolean matches(Method method, Class targetClass); //.. } 포인트컷은 크게 ClassFilter 와 Met..
- Total
- Today
- Yesterday
- 파이썬
- 스프링부트
- 알고리즘
- kotlin
- 코테
- 노마드
- leetcode
- 노마드코더
- MySQL
- Spring
- 코틀린
- 북클럽
- 구현
- 백준
- 인프런
- 그리디
- webflux
- 릿코드
- 정렬
- mysql 8.0
- 데이터베이스
- spring boot
- 스프링
- Algorithm
- 김영한
- 리팩토링
- 스프링 부트
- 자료구조
- 문자열
- Real MySQL
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |