Spring/DB (2) 썸네일형 리스트형 @Transactional 적용 스프링 프레임워크는 @Transactional 을 제공해 비즈니스 로직에 들어있는 JDBC 기술을 걷어내 서비스 계층을 특정 기술에 종속되지 않도록 하였고 다양한 옵션을 통해 트랜잭션을 제어할 수 있다. @Transactional 적용 전 @Slf4j @RequiredArgsConstructor public class MemberService { private final DataSource dataSource; private final MemberRepository memberRepository; public void transfer(String fromId, String toId, int money) throws SQLException { Connection con = dataSource.getConn.. @Repository 기능 @Repository 는 데이터 액세스 계층에서 사용되는 애너테이션이다. 보통은 컴포넌트 스캔의 대상이 되기 위해 적용하지만 스프링 부트와 JPA 를 사용할 경우 예외 변환기(PersistenceExceptionTranslationPostProcessor) 를 자동으로 등록해서 @Repository 를 적용한 빈을 프록시로 변환한다. 이렇게 변환된 프록시는 데이터 액세스 계층에서 예외가 발생하면 스프링 예외 추상화(DataAccessException)로 변환해준다. 스프링 예외 추상화로 변환 시 이점은 JPA 뿐만 아니라 JdbcTemplete, MyBatis 와 같은 데이터 접근 기술에서 발생되는 예외를 통합적으로 관리한다는 점이다. 따라서 데이터 접근 기술을 변경하더라도 예외 처리하는 로직을 수정할 .. 이전 1 다음