728x90
Spring, Spring Boot 를 사용하면 자주 만나게 되는 빈 주입 오류!!!
JPA 를 써보려다가 MyBatis로 프로젝트 ORM을 변경했는데, 그러다보니 테스트에서 아무 생각없이 (JPA 앤티티가 없는 상태에서) @DataJpaTest 를 쓰려고 하니 (당연히) 오류가 발생했다.
👾 오류 메세지 👾
org.springframework.beans.factory.BeanCreationException
내가 사용한 테스트 클래스의 어노테이션
@DataJpaTest
@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)
@DataJpaTest
- 오직 JPA 컴포넌트들만 테스트하기 위한 Annotation (@Entity 클래스를 스캔)
- full-auto config 를 해제하고 JPA 테스트와 연관된 config만 적용
이처럼 @DataJpaTest 는 JPA 관련된 테스트 설정만 로드 하는데 MyBatis의 @Mapper 클래스들을 @Autowired 로 주입해서 사용하려고 해서 사용할 수 없다고 오류가 뜬 것
그래서 나는 하단 2개의 어노테이션을 사용해서 어플리케이션이 실행될 때 스캔한 모든 빈을 사용하고, 롤백하는 방식을 사용했다.
@SpringBootTest
@Rollback(value = true)
728x90
'디버깅∕오류해결' 카테고리의 다른 글
Address already in use: JVM_Bind (0) | 2022.04.03 |
---|---|
[SQL script] Unterminated dollar quote $$ 오류 스프링 설정으로 해결하기 (0) | 2021.09.14 |
[Spring Boot] To display the conditions report re-run your application with 'debug' enabled (0) | 2021.09.02 |
[JUnit 5] org.junit.platform.launcher.core.EngineDiscoveryOrchestrator (0) | 2021.09.02 |
[Spring Java] javax mail Could not convert socket to TLS (14) | 2021.05.26 |