@Transactional 어노테이션


Spring Tranactional 어노테이션에서 주요 속성들만 살펴보면 아래와 같다.


package org.springframework.transaction.annotation;

@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Documented
public @interface Transactional {

    @AliasFor("transactionManager")
    String value() default "";

    Propagation propagation() default Propagation.REQUIRED;

    Isolation isolation() default Isolation.DEFAULT;

    int timeout() default TransactionDefinition.TIMEOUT_DEFAULT;

    boolean readOnly() default false;

    Class<? extends Throwable>[] rollbackFor() default {};

    Class<? extends Throwable>[] noRollbackFor() default {};
}

propagation

isolation

timeout

readOnly

rollbackFor / noRollbackFor

이러한 속성들 중 이번 시간에는 propagation, 트랜잭션 전파 방식에 대해서 알아볼 것이다.

트랜잭션 전파(Propagation)의 개념