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

 

https://kmhan.tistory.com/545

 

 

728x90