Java/Spring
Spring #5
DGeon
2023. 3. 22. 15:01
- AspectJExpressionPointcutAdvisor
- advisor.setAdvice(new SimpleAdv());
- advisor.setExpression("execution(* one(..))");
- and args 조건식을 걸 수도 있음
- 모든 one메소드에서 사용
- execution
-
-
- 리턴타입에 대한 정의(은 모든 리턴 타입, int void 다 올 수 있음 ..:범위 조건(파라미터 갯수 제한 없음)
-
- one*
- one으로 시작하는 모든 메소드 (패키지 명 부터 올 수 있음)
AspectJExpressionPointcutAdvisor advisor = new AspectJExpressionPointcutAdvisor(); advisor.setAdvice(new SimpleAdv()); advisor.setExpression("execution(* one(..))"); //and args조건식을 걸 수도 있음 //모든 one메소드에서 사용, //execution: //* : 리턴타입에 대한 정의(*은 모든 리턴 타입, int void 다 올 수 있음 //..:범위 조건(파라미터 갯수 제한 없음) //* one* : one으로 시작하는 모든 메소드 (패키지 명 부터 올 수 있음) Pointcut pc = advisor.getPointcut(); Advice adv = advisor.getAdvice(); ProxyFactory pf = new ProxyFactory(); pf.addAdvisor(advisor); pf.setTarget(first); First first2 = (First)pf.getProxy(); pf = new ProxyFactory(); pf.addAdvisor(advisor); pf.setTarget(second); Second second2 =(Second)pf.getProxy(); first2.one(); first2.two(); second2.one(); second2.two(); - execution(리턴타입 클래스이름 메소드이름(매개변수**)**)
- ProxyFactoryBean
- 어드바이스, 어드바이저를 제공
- AOP프록시를 생성(ProxyFactoryBean)