작성
·
1.8K
1
토비님이랑 같은 의존성 주입 받았는데 전 HikariDataSource라는 class가 존재하지 않습니다.
제가 잘못한게 있을까요
답변 5
1
저도 바로 안되어서 확인해봤는데
강사님이 사용하신 의존성은 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
1
저는 강의에 사용했던 Hikari 버전이 여전이 잘 다운로드가 되긴합니다만, 일단 위에 알려주신 다음 버전으로 바꿔서도 해봤습니다.
implementation('com.zaxxer:HikariCP:4.0.3')
그런데 저는 이렇게 해도 Hikari 로그가 잘 나오네요. 테스트 실행하면서 로그 레벨이 DEBUG으로 설정이 되어서 동작을 하는데요.
사용하시는 IDE 종류에 따라서 테스트 실행시 로그 레벨이 다르게 설정이 되면 안 나올 수도 있습니다. 좀 더 구체적인 정보와 실행방법(테스트인지, 애플리케이션 실행인지), 그리고 실제 나온 로그를 보여주시면 좀 더 구체적인 답변을 드릴 수 있습니다.
1
저는 IntelliJ의 의존라이브러리 검색 기능을 이용해서 제일 먼저 나오는 것을 추가했는데요. 온라인 라이브러리 저장소에서 간혹 일부 버전 라이브러리를 잘 가져오지 못하는 경우가 있습니다. 지금 답변으로 올려주신 것이 스프링 JDBC 부트 스타터에 포함된 버전으로 보이는데요. 이걸 사용하셔서 잘 등록이 되셨다니 다행입니다.
Hikari 로그가 안 보인다는 말씀이죠? 이게 버전이 다르면 로깅 레벨이 다를 수가 있습니다. 제가 시간이 될 때 위 설정으로 해서 로그가 나오게 하려면 어떤 옵션을 추가해야할지 한번 찾아보겠습니다.
@ConditionalMyOnClass 레벨에서 class 존재 유뮤 확인할 때 Class명에 HikariDataSource 까지 입력 되어있는지 확인해보세요
hikari logger가 작동 안해서 동일한 문제인줄 알았는데 Conditional 확인할 때 HikariDataSource의 명칭이 잘못되어 hikari를 Bean 객체로 등록하지 않았던 것 이었습니다.
@Bean
@ConditionalMyOnClass("com.zaxxer.hikari.HikariDataSource")
DataSource hikariDataSource( MyDataSourceProperties properties) throws ClassNotFoundException {
HikariDataSource dataSource = new HikariDataSource();
System.out.println("히카리 설정");
dataSource.setDriverClassName(properties.getDriverClassName());
dataSource.setJdbcUrl(properties.getUrl());
dataSource.setUsername(properties.getUserName());
dataSource.setPassword(properties.getPassword());
return dataSource;
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
// implementation 'org.springframework.boot:spring-boot-starter-jetty'
implementation 'org.springframework:spring-jdbc'
runtimeOnly('com.h2database:h2:2.1.214')
implementation 'com.zaxxer:HikariCP'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
}
0
감사합니다. 애플리케이션 실행 시 잘 안나오는 거였는데 로그 레벨 조정하여 설정해보겠습니다