Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'jdbcMappingContext' defined in class path resource [org/springframework/boot/autoconfigure/data/jdbc/JdbcRepositoriesAutoConfiguration$SpringBootJdbcConfiguration.class]: Unsatisfied dependency expressed through method 'jdbcMappingContext' parameter 1: Error creating bean with name 'jdbcCustomConversions' defined in class path resource [org/springframework/boot/autoconfigure/data/jdbc/JdbcRepositoriesAutoConfiguration$SpringBootJdbcConfiguration.class]: Failed to instantiate [org.springframework.data.jdbc.core.convert.JdbcCustomConversions]: Factory method 'jdbcCustomConversions' threw exception with message: Error creating bean with name 'jdbcDialect' defined in class path resource [org/springframework/boot/autoconfigure/data/jdbc/JdbcRepositoriesAutoConfiguration$SpringBootJdbcConfiguration.class]: Failed to instantiate [org.springframework.data.relational.core.dialect.Dialect]: Factory method 'jdbcDialect' threw exception with message: Failed to obtain JDBC Connectio
강의대로 잘 따라한거 같은데 에러가 발생했다...
이 오류 메시지는 Spring Boot 애플리케이션의 컨텍스트 초기화 중 발생한 문제로, JDBC 연결을 얻는 데 실패하여 여러 빈이 생성되지 못했음을 나타낸다. 구체적으로 jdbcMappingContext와 관련된 빈들이 초기화되지 못하고 있는 상황이다.
이 문제를 해결하기 위한 방법은 6가지 정도가 있는데...
JDBC 연결 설정 확인:
application.properties 또는 application.yml 파일에서 JDBC URL, 사용자명, 비밀번호가 올바르게 설정되었는지 확인한다.데이터베이스 드라이버:
mysql-connector-java 의존성이 포함되어야 한다.JDBC URL 형식:
jdbc:mysql://<host>:<port>/<database> 형식이어야 한다.빈 정의 및 설정:
JdbcRepositoriesAutoConfiguration과 관련된 설정이 올바르게 되어 있는지 확인해야 한다.로그 확인:
데이터베이스 접근 권한:
다 시도했는데 결론은...
강의의 코드스니펫에
spring.datasource.url=jdbc:mysql://localhost:3306/memo
spring.datasource.username=root
spring.datasource.password={비밀번호}
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
이런식으로 되어있길래 괄호안에 비밀번호를 넣는 것인줄 알았는데 괄호도 지우고 써야한다.
spring.datasource.url=jdbc:mysql://localhost:3306/memo
spring.datasource.username=root
spring.datasource.password=1234
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
이런식으로 쓰니 정상적으로 실행되었다.