Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
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
more
Archives
Today
Total
관리 메뉴

번개멍

[Spring]Execution 본문

코딩이야기/Spring

[Spring]Execution

번개멍 2020. 7. 6. 16:03

.Execution 명시자

 */

----------------------------------------

 - 메소드 원형 : 접근제한자,  반환값, 메소드명( int kor, int eng, int mat), 매개변수(전달인자)

 

 - 사용 목적 : Pointcut을 지정할 때 사용

 

 - execution(접근제한자,  반환값(리턴타입), 클래스이름, 메소드명(매개변수(전달인자)) )

 

   1) 접근 제한자 : public만 지원합니다.

   2) 리턴타입 : 메소드의 매개변수 타입

   3) 클래스 이름 : 패키지를 포함한 클래스 이름

   4) 메소드 이름 : 메소드의 이름

   5) 매개변수 : 매개변수의 형태

     - ** : 하나의 모든 덧을 이미한다.

     - .. : 개수에 상관없이 모든 것을 의미하다.

 

<!--context-aop 설정-->

<bean id='advisor1' class='kr.co.korea.advisor.AdvisorClass'/>

<aop:config>

<aop:aspect ref='advisor1'>

<!-- 반환타입은 void, kr.co.korea.beans.TestBean1 클래스, method1 메소드, 매개변수 없음.-->

<aop:pointcut id="point1" expression‎="execution(void kr.co.korea.beans.TestBean1.method1())"/>

<aop:before method="firstMethod1" pointcut-ref="point1"/>

<aop:pointcut id="point2" expression‎="execution(void kr.co.korea.beans.TestBean1.method2())"/>

<aop:before method="secondMethod2" pointcut-ref="point2"/>

<aop:pointcut id="point1" expression‎="execution(void kr.co.korea.beans.TestBean1.method1(int))"/>

<aop:pointcut id="point1" expression‎="execution(void kr.co.korea.beans.TestBean1.method1(String))"/>

 

<aop:pointcut id="sss1" expression‎="execution(void kr.co.korea.beans.TestBean1.method1(*))"/>

<aop:after method="Method3" pointcut-ref="sss1"/>

 

<aop:pointcut id="aaa1" expression‎="execution

(int kr.co.korea.beans2.TestSample1.add(int x, int y))"/>

<aop:after method="Method333" pointcut-ref="aaa1"/>

 

<!-- 반환타입은 void, kr.co.korea.beans 패키지, TestBean1 클래스, method1 메소드, 정수형 매개변수 2개 존재. -->

<aop:pointcut id="point1" expression‎=

"execution(void kr.co.korea.beans.TestBean1.method1(int, int))"/>

 

<aop:pointcut id="point1" expression‎=

"execution(void kr.co.korea.beans.TestBean1.method1(int, String))"/>

 

<aop:pointcut id="point1" expression‎=

"execution(void kr.co.korea.beans.TestBean1.method1(String, int))"/>

 

<aop:pointcut id="point1" expression‎=

"execution(void kr.co.korea.beans.TestBean1.method1(String, String))"/>

 

   <!-- 반환타입은 void, kr.co.korea.beans 패키지, TestBean1 클래스, method1 메소드, 모든 타입의 매개변수 0개 이상. --> <aop:pointcut id="point1" expression‎=

"execution(void kr.co.korea.beans.TestBean1.method1(..))"/>

 

<!-- 반환타입은 void, kr.co.korea.beans 패키지, TestBean1 클래스, 모든 메소드, 모든 타입의 매개변수 0개 이상. -->

<aop:pointcut id="point1" expression‎=

"execution(void kr.co.korea.beans.TestBean1.*(..))"/>

 

<!-- 반환타입은 void, kr.co.korea.beans 패키지, 모든 클래스, 모든 메소드, 모든 타입의 매개변수 0개 이상. --> <aop:pointcut id="point1" expression‎=

"execution(void kr.co.korea.beans.*.*(..))"/>

 

<!-- 반환타입은 void, kr.co.korea.beans 패키지, 모든 클래스, method1 메소드, 모든 타입의 매개변수 0개 이상. -->

<aop:pointcut id="point1" expression‎=

"execution(void kr.co.korea.beans.*.method1(..))"/>

 

<!-- 반환타입은 void, kr.co.korea. 모든 패키지, 모든 클래스, 모든 메소드, 모든 타입의 매개변수 0개 이상. --> <aop:pointcut id="point1" expression‎=

"execution(void kr.co.korea.*.*.*(..))"/>

 

<!-- 반환타입은 void, kr.co.korea. 모든 패키지, TestBean1 클래스, 모든 메소드, 모든 타입의 매개변수 0개 이상. -->

<aop:pointcut id="point1" expression‎=

"execution(void kr.co.korea.*.TestBean1.*(..))"/>

 

<!-- 반환타입은 void, 모든 패키지, 모든 클래스, 모든 메소드, 모든 타입의 매개변수 0개 이상. -->

<aop:pointcut id="point1" expression‎= "execution(void *.*(..))"/>

 

<!-- 반환타입은 int, 모든 패키지, 모든 클래스, 모든 메소드, 모든 타입의 매개변수 0개 이상. -->

<aop:pointcut id="point1" expression‎= "execution(int *.*(..))"/>

 

<!-- 모든 반환타입, 모든 패키지, 모든 클래스, 모든 메소드, 모든 타입의 매개변수 0개 이상. -->

<aop:pointcut id="point1" expression‎= "execution(* *.*(..))"/>

 

<!--  모든 패키지 -->

<aop:pointcut id="point1" expression‎= "execution(* *(..))"/>

 

<!--  모든 패키지의 method1인 경우에 -->

<aop:pointcut id="point1" expression‎= "execution(* method1(..))"/>

 

<!-- AOP 적용시 다양한 상황에 대응 할 수 있는 명시자를 제공하고 있습니다. -->

<!-- <aop:around method="aroundMethod" pointcut-ref="point1"/>

<aop:after-returning method="afterReturningMethod" pointcut-ref="point1"/> -->

 

</aop:aspect>

</aop:config> 

'코딩이야기 > Spring' 카테고리의 다른 글

[Spring]AOP Interceptor  (0) 2020.07.10
[spring]AspectJ  (0) 2020.07.06
[Spring] 어노테이션 정리  (0) 2020.07.01
[Spring] 자동주입  (0) 2020.06.30
[Spring]스프링의 이해?  (0) 2020.06.25
Comments