Transactional처리
-
@Transactional 사용 시 주의해야 할 사항들스터디 노트 2023. 12. 4. 16:57
@Transactional 애너테이션은 스프링 AOP를 사용해 동작합니다. AOP 위빙이 되지 않은 채 대상 메서드가 실행되어도 알기가 어렵습니다. 즉, 대상 메서드가 실행되었지만, 어드바이스가 정상적으로 실행되지 않을 수 있다는 말이 됩니다. 여기서 개발자가 쉽게 실수하는 두 가지 주의 사항과 사용할 때 유의점을 살펴보도록 하겠습니다. ✅ public 접근제어자로 선언된 메서드만 @Transactional 애너테이션이 동작합니다. final이나 private 접근제어자로 선언된 메서드는 프록시로 만들 수 없기 때문에 애너테이션을 선언해도 정상동작하지 않습니다. ✅ 스프링 빈으로 주입된 객체의 메서드를 호출해야 합니다. 당연하겠죠. 우리는 스프링 프레임워크 위에서 동작하게 됩니다. ApplicationC..
-
@Transactional 애너테이션에 대하여스터디 노트 2023. 12. 4. 13:09
스프링 프레임워크에선 데이터베이스 트랜잭션 기능을 사용할 수 있는 Transactional 애너테이션을 제공합니다. 이 애너테이션은 JPA가 아닌 스프링 프레임워크에서 제공하는 기능입니다. 트랜잭션은 영속성 프레임워크의 종류와 상관없는 관계형 데이터베이스의 기능이기 때문에 JPA/Hibernate도 결국 SQL쿼리로 데이터를 영속하므로 트랜잭션을 사용할 수 있지요. 다음은 Transactional 애너테이션 코드입니다. @Target({ElementType.METHOD, ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Inherited @Documented public @interface Transactional { ... } Transactional ..