본문 바로가기
Spring

Spring | DataSource, @SpringBootTest, @Transactional

by 2yy 2023. 12. 6.

DataSource

- 데이터베이스 커넥션을 획득할 때 사용하는 객체. 스프링 부트는 데이터베이스 커넥션 정보를 바탕으로 DataSource를 생성하고 스프링 빈으로 만들어두므로 DI를 받을 수 있음

*스프링의 DI (Dependencies Injection)을 사용하면 기존 코드를 전혀 손대지 않고, 설정만으로 구현 클래스 변경 가능

*개방-폐쇠 원칙(OCP, Open-Closed Principle) : 확장에는 열려있고, 수정/변경에는 닫혀있음

 

@SpringBootTest

- 스프링 컨테이너와 테스트를 함께 실행하는 애노테이션

 

@Transactinal 

- 테스트 케이스에 이 애노테이션이 있으면, 테스트 시작 전에 트랜잭션을 시작하고, 테스트 완료 후에 항상 롤백함.

  이렇게 하면 DB에 데이터가 남지 않으므로 다음 테스트에 영향을 주지 않음.