2011-11-27 1 views
2

에 나는 다음과 같은 클래스가있다 : 나는 그것을 어떻게 을스프링 AOP setAdvice에게 하나의 특정 방법

을 할 수

someMethod(SomeObject object, int param1) 유일한 방법에 @PointCut을 설정하려는

이제
package x.y.z; 

public class MyClass{ 
public void someMethod(SomeObject object){ 
//do somethinng 
} 

public void { 
//do somethinng 
} 

} 

?

업데이트 내가이 예를 보면,

@Pointcut("execution(x.y.z.MyClass.someMethod(x.y.z.SomeObject))") but I'm getting not well formed pointcut exception. 
+0

pointcut을 met 와일드 카드를 사용하는 것이 아니라 hod? –

+0

@Dave, 어떻게해야합니까? 이것은 정확히 내 질문이다 –

답변

4

포인트 인하해야 be :

target(x.y.z.MyClass) && execution(<RETURN TYPE> someMethod(x.y.z.SomeObject)) 
3

바이트 코드이 화면을 컴파일 클래스 경로 및 사용 받는다는에 AOP 플러그인을 AspectJ를를 연결하려고 해요 :

@Aspect 
public class IOControlAspect { 
    @Around("execution(com...SomeClass.someMethod(*))") 
    public Object ioControlWrapper(ProceedingJoinPoint thisJoinPoint) throws Throwable { 
     {your code here} 
     return thisJoinPoint.proceed(); 
    } 
} 
+0

좋은,하지만 어떤 methos 그것은 동일한 이름과 다른 매개 변수를 가진 메서드가 실행됩니다. –

+1

괜찮 았어. Exec (com ... SomeClass.someMethod (int, java.lang.String 등))을 사용하여 매개 변수를 지정할 수있다. –

+0

Spring AOP가이 표기법을 지원하지만 AspectJ가이 표기법을 사용할 수 있는지 기억이 안 난다. . –