본문 바로가기
  • Where there is a will there is a way.
개발/spring

13장 웹 어플리케이션과 영속성 관리

by 소확행개발자 2019. 4. 18.

스프링 컨테이너 기본 전략 

 

스프링 컨테이너는 트랜잭션 범위의 영속성 컨텍스트 전략을 기본으로 사용한다.

 

즉 트랜잭션의 범위와 영속성 컨텍스트의 생존 범위가 같다는 뜻이다.

 

트랜잭션을 시작할 때 영속성 컨텍스트를 생성하고 트랜잭션이 끝날 때 영속성 컨텍스트를 종료한다

 

@Service 에

 

@Transactional 어노테이션을 사용해서 시작할때 

 

호출한 메소드를 실행하기 직전에 스프링 트랜잭션 AOP가 먼저 동작한다. 

스프링 트랜잭션 AOP 는 대상 메소드를 호출하기 직전에 트랜잭션을 시작하고, 대상 메소드가 정상 종료되면 트랜잭션을 커밋하면서 종료한다. 

 

만약 서비스에 repository가 두개가 있고 트랜잭션이 같으면 항상 같은 영속성 컨텍스트를 사용한다.

 

예를들어 

 

@Transactional

@Service

method {



repo1...

repo2...



}

 

이라고 가정하면 

repo1 과 repo2 는 같은 트랜잭션 범위에 있으므로 같은 영속성 컨텍스트를 사용한다.

 

 

 

정리하자면 조금 더 출어서 이야기하자면 스프링 컨테이너는 스레드마다 각각 다른 트랜잭션을  

'개발 > spring' 카테고리의 다른 글

스프링 application context  (0) 2020.02.08
스프링 부트 스케쥴러 메모  (0) 2019.06.10
spring oauth2.0 jwt 토큰 방식  (5) 2019.01.21
스프링 시큐리티에 대한 이해  (0) 2019.01.15
spring OAuth server 구성  (0) 2019.01.10

댓글