Programming/Spring

[SpringBoot] application.properties 에서 jdbc 설정시 주의사항 - Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Hikari.class]: Bean instantiation via..

OriginMaster 2021. 11. 23. 22:15
반응형

jdbc 정보를 입력할 때 데이터베이스의 username 혹은 password를 암호화할 일이 생긴다.

 

다음은 암호화된 정보를 jdbc에 입력할 때 주의사항을 기재한 것이다.

일반적인 jdbc 설정
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test?serverTimezone=UTC&allowPublicKeyRetrieval=true
spring.datasource.username=test
spring.datasource.password=test

 

Bean 메소드를 사용하여 암호화된 데이터를 입력할 시

에러발생 예시)

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test?serverTimezone=UTC&allowPublicKeyRetrieval=true
spring.datasource.username=test
spring.datasource.password=ENC(nnynUvfM6WRcqwesdXcegeHHg==)

이럴 경우 다음과 같은 에러가 발생한다.

 

password의 값을 읽어오지 못하고 IllegalStateException이 발생한다.

 

 

바른 예시)

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test?serverTimezone=UTC&allowPublicKeyRetrieval=true
spring.datasource.username=test
spring.datasource.password=${ENC(nnynUvfM6WRcqwesdXcegeHHg==)}

※ 반드시 '키값=${데이터}' 의 형태로 되어 있어야 Bean 어노테이션으로 설정된 값을 처리할 수 있다.

 

 

Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Hikari.class]: Bean instantiation via factory method failed; 관련 에러

위의 에러가 발생한다면 했을 때, jdbc 정보 문자열 끝에 공백이 들어가 있는지 확인해야 한다.

끝에 공백이 있을 경우 발생하는 에러이다...

 

application.properties를 작성할 때는 '문자열 끝'에 공백(스페이스바)가 있으면 안된다.

 

필자는 이 문제로 하루를 그대로 날렸다....

반응형