반응형
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==)
이럴 경우 다음과 같은 에러가 발생한다.
바른 예시)
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를 작성할 때는 '문자열 끝'에 공백(스페이스바)가 있으면 안된다. ※※※
필자는 이 문제로 하루를 그대로 날렸다....
반응형