본문 바로가기
반응형

propagation3

@Transactional 사용시 주의 사항4 (propagation(전파속성) 에 대해) 이전 포스팅에서 Transactional annotation 설명 시 propagation에 대해 다룬적이 있다. 간단히 언급만 되었어서 자세하게 하나하나 설명이 들어갈 포스팅이다. 사용법은 아래와 같다. @Transactional(propagation = 아래 속성) 속성 설명 비고 Propagation.REQUIRED 따로 지정을 해주지 않으면 default 부모 트랜잭션 내에서 실행하며 부모가 없으면 새롭게 생성을 하여 자신이 부모가 된다. 예외발생시 예외가 전파되며 상위로 올린다. Propagation.REQUIRES_NEW 실행할때 새롭게 Transactional 을 생성한다. 기존에 부모 Transactional 로 묶여있더라도 별개로 작동하여 부모와는 무관하게 돌아간다. 예외 발생해도 상위 .. 2023. 11. 14.
@Transactional 사용시 주의 사항3 (Proxy 관련 // private 금지, 트랜잭션 분리) 이전 포스팅에서 Transactional 에 대한 설명도 다룬적이 있고 주의사항에 대해서 다룬 글이 있다. 자세한 내용은 참고 포스팅 참고 바란다. 이번 포스팅에서 다룰 내용은 Transactional annotation을 선언할때 주의할 점이다. 1. private 로 선언된 메서드에 transactional 금지 Transactional 은 CGLIB 이 Proxy를 생성하여 호출을 하게 된다. CGLIB이 Transactional 이 걸려있는 메서드를 잡기 위해서는 외부에서 접근이 가능해야한다. 그리하여 private 로 선언 하면 해당 메서드에 접근을 못하여 transactional이 적용이 안된다. 2. 동일 Bean안에서(class) 여러 트랜잭션 금지 Transactional 은 AOP 기반.. 2023. 11. 4.
@Transactional annotation spring에서 사용하는 annotation 중 하나인 이 Transactional annotation에 대해 소개하려고 한다. 사용은 메서드 상단에 설정을 해준다. 예제는 아래와 같다. @Transactional public void interal() { serviceA.transactionalTest(); serviceA.transactionalTest(); serviceA.transactionalTest(); throw new ExceptionEx("errr"); } 이미 검색을 하고 들어온 순간부터 Transactional 이라는 애가 뭘 하는 애인지는 알거라 생각하지만 간단히 설명하면 스프링 내에서 AOP 원리로 동작을 하며 Transactional 로 묶어둔 메서드가 시작부터 종료할때까지 모든.. 2023. 7. 10.
반응형