ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Spring #5
    Java/Spring 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)

    'Java > Spring' 카테고리의 다른 글

    Spring #8  (0) 2023.03.27
    Spring #7  (0) 2023.03.24
    Spring #4  (0) 2023.03.21
    Spring #3  (0) 2023.03.20
    Spring #2  (0) 2023.03.17
Designed by Tistory.