[SPRING] Aspectj 및 개인 또는 내부 메소드 가져 오기
SPRINGAspectj 및 개인 또는 내부 메소드 가져 오기
나는 Spring에서 AspectJ를 구성했으며 클래스 밖에서 호출 된 공용 메소드를 "catch"할 때 잘 동작한다. 이제 나는 이와 같은 것을하고 싶다.
public class SomeLogic(){
public boolean someMethod(boolean test){
if(test){
return innerA();
} else {
return innerB();
}
}
private boolean innerA() {// some logic}
private boolean innerA() {// some other logic}
}
SomeLogic은 SpringBean입니다. 메소드 innerA ()와 innerB ()는 private 또는 public으로 선언 될 수 있습니다. someMethod () 메소드는 Struts 액션에서 호출됩니다. AspectJ에서 someMethod ()에서 호출 된 innerA () 또는 innerB () 메서드를 catch하는 것이 가능합니까?
내 config (XML 기반) :
<aop:aspect id="innerAAspect" ref="INNER_A">
<aop:pointcut id="innerAService" expression="execution(* some.package.SomeLogic.innerA(..))"/>
</aop:aspect>
<aop:aspect id="innerAAround" ref="INNER_A">
<aop:around pointcut-ref="innerAService" method="proceed"/>
</aop:aspect>
<aop:aspect id="innerBAspect" ref="INNER_B">
<aop:pointcut id="innerBService" expression="execution(* some.package.SomeLogic.innerB(..))"/>
</aop:aspect>
<aop:aspect id="innerBAround" ref="INNER_B">
<aop:around pointcut-ref="innerBService" method="proceed"/>
</aop:aspect>
해결법
-
==============================
1.예, AspectJ를 사용하여 개인 메소드를 쉽게 catch 할 수 있습니다.
예, AspectJ를 사용하여 개인 메소드를 쉽게 catch 할 수 있습니다.
모든 개인 메서드 앞에 문장을 인쇄하는 예제입니다.
@Pointcut("execution(private * *(..))") public void anyPrivateMethod() {} @Before("anyPrivateMethod()") public void beforePrivateMethod(JoinPoint jp) { System.out.println("Before a private method..."); }
이클립스에 익숙하다면 STS로 AspectJ를 개발하거나 AJDT 플러그인 만 설치하는 것이 좋다.
Spring AOP 기능에 대한 더 많은 정보는 Spring 레퍼런스 문서에서 찾을 수있다.
from https://stackoverflow.com/questions/4402009/aspectj-and-catching-private-or-inner-methods by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring 설정 파일에서 maven 프로젝트 버전에 접근하기 (0) | 2019.01.18 |
---|---|
[SPRING] 간단한 예제 프로젝트에서 Spring 프레임 워크 로그 레벨을 변경 하시겠습니까? (0) | 2019.01.18 |
[SPRING] 데이터베이스 값을 가진 Spring 태그를 덮어 쓴다. (0) | 2019.01.18 |
[SPRING] Spring 데이터와 mongodb - @Transactional 내에서 스프링으로 간단한 롤백 (0) | 2019.01.18 |
[SPRING] Hibernate + Spring에서 커스텀 검증 메시지를 사용하라. (0) | 2019.01.18 |