logo

Spring - 다중 데이터 소스 환경에서 spring.sql.init이 동작하지 않는 이슈 해결

language-logoSpring
language-logoHibernate

• 테스트 코드에 H2 및 테스트 자동화를 적용하려 했지만, Custom한 Annotation 때문에 hibernate의 ddl-auto 옵션을 사용할 수 없었다. 대신 직접 작성한 SQL을 실행하도록 설정했다.
• 전체 테스트는 성공했지만, 일부 테스트에서 문제가 발생했다. 원인을 찾기 위해 디버깅을 진행한 결과, Controller Test에서는 작성한 SQL이 실행되지 않았다. 이를 해결하기 위해 BaseController에 애노테이션을 추가했다.
• 스프링부트의 ql.init 프로퍼티는 DataSourceAutoConfiguration을 통해 데이터 소스를 생성할 때 적용되며, DataSourceScriptDatabaseInitializer 클래스에서 스키마와 데이터 초기화 SQL이 실행된다.
• Controller 테스트에서는 DataSource가 2개 이상 등록되어 있어서 sql.init이 실행되지 않았으며, Repository 테스트에서는 DataSource 빈이 하나만 등록되어 있어서 DataSourceInitializationConfiguration이 정상적으로 동작했다.

thumbnail
북마크
공유하기
신고하기
8분 분량
조회수 162
profile-imageVioletbeach
2년 전
Copyright © 2025. Codenary All Rights Reserved.