-
카테고리
-
세부 분야
백엔드
-
해결 여부
해결됨
AOP execution expression 질문입니다.
19.08.11 12:39 작성 조회수 217
2
예전에 부트기반이 아닌 스프링 프레임웤에서는
<aop:conifg> 라는 XML ApplicationContext로 관리했던 것으로 기억이 납니다.
기선님의 강의의 execution expression을 보면
* me.whiteship..*.EventService.*(..) 이런식으로 되어있는데
제가 알기로는 앞이 리턴타입, 패키지명.. = 패키지명으로 시작하는 모든패키지 *클래스명 .* 모든메소드와 매개변수로 알고 있는데
기선님꺼에서는
* me.whiteship..*.EventService.*(..)
클래스 명 앞에 *.가 붙어있는데 이건 어떤 의미일까요?
제 인텔리j에서는 no Advice Method라고 나왔고
* me.whiteship..*.EventService.*(..)를
* me.whiteship..*EventService.*(..)로 수정하니 제대로 동작하였습니다.
답변을 작성해보세요.
1
0
개발한입
질문자2019.08.11
이런 자료를 봐서 그렇게 말씀드렸습니다.
스프링 레퍼런스와 토비 책을 보니
execution(modifiers-pattern? ret-type-pattern declaring-type-pattern? name-pattern(param-pattern)
throws-pattern?)
https://docs.spring.io/spring/docs/2.0.x/reference/aop.html
이부분에 대해서
execution([접근제한자 패턴] 리턴타입패턴 [타입패턴.]이름패턴(파라미터패턴) [throws 예외패턴]) 인것 같은데
위에 코드의 ?로 적힌 부분은 생략이 가능한 것 같아서
* me.whiteship..*.EventService.*(..) 이 경우에는 리턴타입이 상관없고 패키지는 me.whiteship 속한 여러개이고, 클래스는 *EventService로 끝는 클래스의 모든 메소드에 매개변수 상관없이 적용시킨다라고
이해하면 맞는 걸까요?
0
백기선
지식공유자2019.08.11
제일 처음에 오는 *는 리턴타입이 아닙니다. 그렇게 알고 계신 근거는 무엇인가요?
execution expression 문법은 제가 설명해드릴 수도 있지만 직접 찾아보시기 바랍니다. 그것도 학습입니다.
답변 3