Spring AOP에서 주의사항으로 무엇이 있나요? #143
Unanswered
Chocochip101
asked this question in
Spring
Replies: 1 comment
-
Spring AOP는 프록시 패턴을 사용하기 때문에 프록시 객체를 통한 실제 대상 객체의 메서드 호출이 있어야 실행 전후 추가 로직 실행이 가능하다. 실제 객체를 바로 호출하게 되는 경우 AOP가 적용되지 않는 메서드에서 본인 인스턴스 내부의 메서드를 호출하는 경우 public class Example {
public void external() {
// do something...
// this.internal()이 되어 실제 객체의 internal()이 proxy를 거치지 않고 바로 호출됨
internal()
}
@Transactinal
public void internal() {
// do somthing....
}
} 해결법 내부 메서드 호출이 아니도록 객체를 분리, proxy를 통해 메서드가 호출되도록 개선 public class Example {
private final NewClass newClass;
public void external() {
// do something...
// NewClass는 AOP가 적용됐기 때문에 Spring 의존성 주입 시 자동으로 proxy 객체가 주입
newClass.internal()
}
}
public class NewClass {
@Transactinal
public void internal() {
// do somthing....
}
} |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
.
Beta Was this translation helpful? Give feedback.
All reactions