2019년 8월 27일 화요일

@Transactional @Caching 사용시 주의 사항

Spring 에서 @Transactional @Caching 등
Spring AOP(Proxy) 관련 기능 사용중 발생한 문제 처리 중 습득한 지식이다.


  1. spring aop 의 proxy 종류
    • JDK Proxy
      • Interface 를 구현한 경우
    • CGLIB
      • Interface 없이 Class 로 구현한 경우

  2. Spring 의 기본 사항
    • 외부에서 Invocation (호출) 한 method 에만 Proxy 기능 작동
    • public method 에만 Proxy 기능 작동
    • Self-Invocation (Object 내에서 내부 method 호출) 시 Proxy 기능 작동 안함.
  3. 처리 방법
    • AspectJ 사용
      • Spring AOP 의 Weaving 방식을 AspectJ 의 Weaving 방식으로 변경 함으로서 처리함.
    • Self-Invocation 시 직접 method 호출이 아닌 자신의 bean 을 사용하여 method 호출
      • 가장 간단 하지만 private method 호출 불가
      • ex)
      • @Autowired
      • private SomeObject self;
      • self.someMethod();
  4. 참고 사이트

댓글 없음:

댓글 쓰기