spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
application.properties 파일에 이 설정을 추가했었는데(솔직히 언제, 왜 추가한건지를 도저히 모르겠다)
먼저,
DataSourceAutoConfiguration
이란?Spring Boot는 자동으로 데이터베이스와 연결해주는 기능을 제공한다.
이 역할을 하는 게 바로 DataSourceAutoConfiguration
인데,
✔ spring-boot-starter-data-jpa
를 사용하면 기본적으로 MySQL, H2 등과 자동 연결을 지원하고
✔ application.properties
에서 spring.datasource.url
, username
, password
를 설정하면 자동으로 데이터소스 생성한다.
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
이 하는 일이 설정을 추가하면 Spring Boot가 자동으로 데이터베이스와 연결하지 않도록 막아버린다.
결과적으로 발생하는 문제:
@Repository
, @Service
에서 @Autowired
로 주입하려고 하면, 의존성을 찾을 수 없어서 에러가 발생한다.Parameter 0 of constructor in khpractice.api.service.MovieDetailService required a bean of type
'khpractice.api.repository.MovieDetailRepository' that could not be found.
MovieDetailRepository
를 찾지 못했다는 뜻DataSourceAutoConfiguration
을 제외해서 JPA가 데이터베이스를 설정하지 못했기 때문