Hello

46. 스프링의 전통적인 트랜잭션

by 볼빵빵오춘기

  1. requset : 홍길동 → 장보고에게 10000원 송금
  2. web.xml (DB 연결 세션 생성, 트랜잭션 시작 + 영속성 컨텍스트 시작(사용자별로 생성된다.))
  3. 필터
  4. Controller - 요청분기
  5. Service - 송금(), repository - 계좌테이블에서 홍길동 계좌 select, 장보고 계좌 select
  6. 5번에서 홍길동과 장보고 계좌에서 select를 했기 때문에 실제로 DB에서 계좌테이블에 대한 영속성컨텍스트에 객체화한다.
  7. Service에서 홍길동 계좌 금액은 0, 장보고 계좌금액은 6000원으로 변경
  8. 로직은 요청분기한 Controller에 돌아온다.
    (이 때, 트랜잭션을 종료 시키는데 영속성 컨텍스트의 값이 변경을 감지하여 영속성컨텍스트는 DB에 flash해서 변경된 값을 넣어주고 DB연결 세션을 종료한다.+영속성 컨텍스트 종료된다. )
  9. Controller는 요청을 8번에서 수행 후 Data(Json) or html로 response 해준다.

 

블로그의 정보

Hello 춘기's world

볼빵빵오춘기

활동하기