JavaBookStudy / JavaBook

책읽기 스터디
https://javabookstudy.github.io/
Apache License 2.0
19 stars 2 forks source link

[토비의 스프링] 5.2.3 트랜잭션 동기화에서 TransactionSynchronizationManager의 역할 #95

Closed daebalprime closed 3 years ago

daebalprime commented 3 years ago

TransactionSynchronizationManager.initSynchronization()을 선언하는 코드가 363p에 있는데, 이 코드를 선언함으로써 어떤 효과를 얻을 수 있을까요?

동기화를 위해 호출하는 코드인건 알겠으나... 정확히 어떤 역할을 하는지 알 수 없는 메서드네요

kjsu0209 commented 3 years ago

새 동기화 작업을 하기 위해 현재 스레드의 동기화 작업을 초기화 시키는 역할이라고 생각됩니다. 트랜잭션은 독립적이어야 해서 그런게 아닐까요 (ACID)

daebalprime commented 3 years ago

질문이 조금 애매했습니다... 내부적인 동작에 대한 질문이었습니다.

찾아보니까 원래는 TransactionSynchronizationManager.bindResource()라는 메서드를 호출해 주어야 하는데 DataSourceUtils.getConnection()이 커넥션을 만들어 바인딩까지 해주는 모양인가 봅니다.