Transactional(2)
-
@Transactional
@Transactional @Transactional이 적용된 범위에서는 트랜잭션 기능이 포함된 프록시 객체가 생성되어 자동으로 DB에 commit 혹은 rollback을 진행해준다. RuntimeException(UnCheckedException) 발생 시 rollback된다. 어째서 UnCheckedException일 때 rollback 되는지 검색해본 결과, 스프링의 예외 전략은 UnCheckedException라는 사실을 발견했다. 개발자가 코드로 처리 불가능한 SQLException, IOException 등의 자바 초기에 구현된 클래스가 던지는 CheckedException은 DataAccessException와 같은 UnchekcedException으로 포장해준다. 런타임에 해결이 불가능한 ..
2022.03.02 -
Spring 통합 테스트
기존의 테스트 코드는, 해당 테스트 클래스 내에서 단독으로 진행되었다. 이번에는 Spring 서버를 띄운 상태로 테스트를 진행하였다. 1. @SpringBootTest 이 어노테이션은 Spring Main Application(@SpringBootApplication 어노테이션)을 찾은 뒤 동일 패키지의 하위 모든 Bean을 찾아온다. package first.firstspring; @SpringBootApplication public class FirstSpringApplication { public static void main(String[] args) { SpringApplication.run(FirstSpringApplication.class, args); } } *Bean을 스프링이 자동으로 ..
2022.02.25