Programming/SpringBoot
[Spring] dataSource or dataSourceClassName or jdbcUrl is required.
owls
2024. 5. 11. 13:56
728x90
java.lang.IllegalArgumentException: dataSource or dataSourceClassName or jdbcUrl is required.
DB연결을 하기 위해 DatabaseConfig파일을 만들고 Bean으로 만들려고 하는데 발생한 에러!
찾아본 결과
스프링 커넥션 풀의 차이에서 나타났는데
SrpingBoot 2.0이전에는 tomcat-jdbc 를 사용하다, 2.0이후에는 HikariCP를 기본옵션으로 채택하고 있다.
그렇기 때문에 설정 방식에 조금 차이가 있다.
1. application.properties 파일
url을 jdbc-url로 수정
spring.datasource.url -> spring.datasource.jdbc-url
HikariCP의 Database URL설정은 url이 아닌 jdbcUrl을 사용하기 때문이다.
2. DatabaseConfig 자바 코드
@ConfigurationPRoperties와 application.properties의 설정 값이 다르기 때문에 나온 에러
application.properties파일에는 datasource로 되어 있기에 여기에 맞게 수정한다.
@ConfigurationProperties(prefix = "spring.datasource.hikari") -> @ConfigurationProperties(prefix = "spring.datasource")
@Bean
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource dataSource(){
return DataSourceBuilder.create().build();
}
참고
https://jojoldu.tistory.com/296
728x90