inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Seunghoon Choi님의 게시글

Seunghoon Choi Seunghoon Choi

@csupreme19

수강평 작성수
12
평균평점
5.0

게시글 5

질문&답변

HikariDataSource가 존재하지 않는 이슈가 있습니다.

저도 바로 안되어서 확인해봤는데 강사님이 사용하신 의존성은 mavenCentral() 저장소가 아니라 Clojars 저장소에 존재하네요. https://mvnrepository.com/artifact/hikari-cp/hikari-cp/3.0.1 IntelliJ 종속성 추가시 저장소가 자동 추가되어 확인하지 못한 것 같습니다! 아래 저장소를 추가하여 사용하거나 repositories { mavenCentral() maven { url "https://clojars.org/repo/" } } 기존 메이븐 저장소에 존재하는 com.zaxxer:HikariCP 라이브러리를 사용하시면 될 것 같습니다.

좋아요수
1
댓글수
5
조회수
2186

질문&답변

커넥션 종료

안녕하세요. DataSourceTransactionManager 기준으로 doCleanupAfterCompletion() 메서드에서 진행하고 있네요. @Override protected void doCleanupAfterCompletion(Object transaction) { DataSourceTransactionObject txObject = (DataSourceTransactionObject) transaction; // Remove the connection holder from the thread, if exposed. if (txObject.isNewConnectionHolder()) { TransactionSynchronizationManager.unbindResource(obtainDataSource()); } // Reset connection. Connection con = txObject.getConnectionHolder().getConnection(); try { if (txObject.isMustRestoreAutoCommit()) { con.setAutoCommit(true); } DataSourceUtils.resetConnectionAfterTransaction( con, txObject.getPreviousIsolationLevel(), txObject.isReadOnly()); } catch (Throwable ex) { logger.debug("Could not reset JDBC Connection after transaction", ex); } if (txObject.isNewConnectionHolder()) { if (logger.isDebugEnabled()) { logger.debug("Releasing JDBC Connection [" + con + "] after transaction"); } DataSourceUtils.releaseConnection(con, this.dataSource); } txObject.getConnectionHolder().clear(); } 트랜잭션 동기화 매니저 정리 수동 커밋 → 자동 커밋 원복 커넥션 닫기 AbstractPlatformTransactionManager 추상 클래스 processCommit() , processRollback() 메서드에서 마지막으로 각 구현체의 doCleanupAfterCompletion() 메서드를 호출하는 구조인 것 같습니다.

좋아요수
0
댓글수
2
조회수
505