Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- JDBC
- kotlin
- springdatajpa
- Spring Boot
- Exception
- http
- pointcut
- 자바
- jpa
- spring
- 스프링 핵심 원리
- QueryDSL
- 스프링
- 인프런
- Proxy
- 스프링 핵심 기능
- 백준
- Servlet
- 그리디
- Thymeleaf
- 김영한
- Android
- SpringBoot
- java
- db
- AOP
- 알고리즘
- transaction
- JPQL
- Greedy
Archives
- Today
- Total
개발자되기 프로젝트
[스프링AOP 포인트컷] 예제코드 본문
1. Annotation
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface ClassAop {
}
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME) //Runtime때까지 annotation유지
public @interface MethodAop {
String value();
}
- @Target: Indicates the contexts in which an annotation type is applicable.
- @Retention: Indicates how long annotations with the annotated type are to be retained.
2. MemberService
public interface MemberService {
String hello(String param);
}
@ClassAop
@Component
public class MemberServiceImpl implements MemberService{
@Override
@MethodAop("test value")
public String hello(String param) {
return "ok";
}
public String internal(String param){
return "ok";
}
}
3. Test
@Slf4j
public class ExecutionTest {
AspectJExpressionPointcut pointcut = new AspectJExpressionPointcut();
Method helloMethod;
@BeforeEach
public void init() throws NoSuchMethodException {
helloMethod = MemberServiceImpl.class.getMethod("hello", String.class);
}
@Test
void printMethod(){
log.info("helloMethod={}", helloMethod);
}
}
- AspectJExpressionPointcut 이 바로 포인트컷 표현식을 처리해주는 클래스다.
- 여기에 포인트컷 표현식을 지정하면 된다.
- AspectJExpressionPointcut 는 상위에 Pointcut 인터페이스를 가진다.
- printMethod() 테스트는 MemberServiceImpl.hello(String) 메서드의 정보를 출력해준다.
helloMethod=public java.lang.String hello.aop.member.MemberServiceImpl.hello(java.lang.String)
- 이번에 알아볼 execution 으로 시작하는 포인트컷 표현식은
- 이 메서드 정보를 매칭해서 포인트컷 대상을 찾아낸다.
4. GitHub: 220105 SpringAop - Pointcut
'인프런 > [인프런] 스프링 핵심 원리 - 고급' 카테고리의 다른 글
[스프링AOP 포인트컷] execution - 2 (0) | 2022.01.06 |
---|---|
[스프링AOP 포인트컷] execution - 1 (0) | 2022.01.06 |
[스프링AOP 포인트컷] Pointcut 지시자 (0) | 2022.01.05 |
[스프링AOP] Advice 종류 (0) | 2022.01.05 |
[스프링AOP] 스프링AOP 구현 - Advice 순서 (0) | 2022.01.05 |
Comments