spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration

application.properties 파일에 이 설정을 추가했었는데(솔직히 언제, 왜 추가한건지를 도저히 모르겠다)


먼저,

1. DataSourceAutoConfiguration이란?

Spring Boot는 자동으로 데이터베이스와 연결해주는 기능을 제공한다.

이 역할을 하는 게 바로 DataSourceAutoConfiguration 인데,

spring-boot-starter-data-jpa를 사용하면 기본적으로 MySQL, H2 등과 자동 연결을 지원하고

application.properties에서 spring.datasource.url, username, password를 설정하면 자동으로 데이터소스 생성한다.


2. spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration이 하는 일

이 설정을 추가하면 Spring Boot가 자동으로 데이터베이스와 연결하지 않도록 막아버린다.

결과적으로 발생하는 문제:

  1. JPA, Hibernate가 사용할 데이터베이스를 찾지 못함 → Repository가 정상적으로 동작하지 않는다.
  2. @Repository, @Service에서 @Autowired로 주입하려고 하면, 의존성을 찾을 수 없어서 에러가 발생한다.

3. 발생한 문제 (의존성 주입 실패 원인)

Parameter 0 of constructor in khpractice.api.service.MovieDetailService required a bean of type
'khpractice.api.repository.MovieDetailRepository' that could not be found.