[SpringBoot] application.properties 에서 jdbc 설정시 주의사항...

[SpringBoot] application.properties 에서 jdbc 설정시 주의사항...

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를 작성할 때는 ' 문자열 끝 '에 공백(스페이스바)가 있으면 안된다. ※※※

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

from http://matseventwelve.tistory.com/34 by ccl(A) rewrite - 2021-11-23 22:27:42