Spring 주해 의 사무 관리

주 해 는 Spring 프레임 워 크 에서 자주 사용 되 는 것 으로 본 박문 은 Annotation 의 사무 관리 에 대해 설명 하 는데 목적 은 프로 그래 밍 학습자 에 게 참고 블 로 그 를 제공 하 는 것 이다.
@ Transactional 이 같은 클래스 앞 에 놓 여 있 을 때 Public 형식의 방법 에 만 유용 합 니 다.
클래스 중 일부 방법 이 트 랜 잭 션 관리 가 필요 하지 않 을 경우 @ Transaction (propagation = Propagation. Not SUPPORTED) 주석 을 통 해 트 랜 잭 션 관리 가 이 방법 에 적응 하지 못 한 다 는 것 을 설명 합 니 다.
@Transactional
public class TestServiceBean implements TestService {   
    private TestDao dao;   
    public void setDao(TestDao dao) {
        this.dao = dao;
    }   
    @Transactional(propagation = Propagation.NOT_SUPPORTED)
    public List<Object> getAll() {
        return null;
    }   
}

사물 전파 행위 소개:  @Transactional(propagation=Propagation.REQUIRED)  트 랜 잭 션 이 있 으 면 트 랜 잭 션 에 가입 하고 없 으 면 새로 만 듭 니 다 (기본 값) @ Transactional (propagation = Propagation. NOT SUPPORTED)  용 기 는 이 방법 으로 트 랜 잭 션 @ Transactional 을 열지 않 습 니 다 (propagation = Propagation. REQUIRES NEW)  트 랜 잭 션 이 있 든 없 든 새로운 트 랜 잭 션 을 만 듭 니 다. 원래 의 연결, 새로운 실행 이 완료 되 었 습 니 다. 오래된 트 랜 잭 션 @ Transactional (propagation = Propagation. MANDATORY) 을 계속 수행 합 니 다.  기 존 트 랜 잭 션 에서 실행 해 야 합 니 다. 그렇지 않 으 면 이상 @ Transactional (propagation = Propagation. NEVER) 을 던 집 니 다.  없 는 일 에서 실행 해 야 합 니 다. 그렇지 않 으 면 이상 을 던 집 니 다 (Propagation. MANDATORY 와 반대) @ Transactional (propagation = Propagation. SUPPORTS)  다른 bean 이 이 방법 을 호출 하면 다른 bean 에서 사 무 를 설명 합 니 다. 다른 bean 이 사 무 를 설명 하지 않 으 면 사 무 를 사용 하지 않 습 니 다.
사물 시간 초과 설정: @ Transactional (timeout = 30) / / 기본 값 은 30 초 입 니 다.
@ Transactional 주석 에서 자주 사용 되 는 매개 변수 설명
매개 변수 이름
기능 설명
readOnly
이 속성 은 현재 트 랜 잭 션 이 읽 기 전용 트 랜 잭 션 인지 설정 하 는 데 사 용 됩 니 다. true 로 설정 하면 읽 기 전용 이 고 false 는 읽 기 전용 이 며 기본 값 은 false 입 니 다.예 를 들 어: @ Transactional (readOnly = true)
rollbackFor
이 속성 은 스크롤 백 이 필요 한 이상 클래스 그룹 을 설정 하 는 데 사 용 됩 니 다. 방법 에서 지정 한 이상 배열 의 이상 을 던 지면 트 랜 잭 션 스크롤 백 을 합 니 다.예 를 들 어 단일 이상 클래스 지정: @ Transactional (rollback For = RuntimeException. class) 여러 이상 클래스 지정: @ Transactional (rollback For = {RuntimeException. class, Exception. class})
 덧 표
매개 변수 이름
기능 설명
rollbackForClassName
이 속성 은 스크롤 백 이 필요 한 이상 클래스 이름 배열 을 설정 하 는 데 사 용 됩 니 다. 방법 에서 지정 한 이상 이름 배열 의 이상 을 던 지면 트 랜 잭 션 스크롤 백 을 합 니 다.예 를 들 어 하나의 이상 클래스 이름 을 지정 합 니 다: @ Transactional (rollback ForClassName = "Runtime Exception") 여러 개의 이상 클래스 이름 을 지정 합 니 다: @ Transactional (rollback ForClassName = {"Runtime Exception", "Exception"})
noRollbackFor
이 속성 은 스크롤 백 이 필요 없 는 이상 클래스 그룹 을 설정 하 는 데 사 용 됩 니 다. 방법 에서 지정 한 이상 배열 의 이상 을 던 질 때 트 랜 잭 션 스크롤 백 을 하지 않 습 니 다.예 를 들 어 단일 이상 클래스 지정: @ Transactional (noRollbackfor = RuntimeException. class) 여러 이상 클래스 지정: @ Transactional (noRollbackfor = {RuntimeException. class, Exception. class})
noRollbackForClassName
이 속성 은 스크롤 백 이 필요 없 는 이상 클래스 이름 배열 을 설정 하 는 데 사 용 됩 니 다. 방법 에서 지정 한 이상 이름 배열 의 이상 을 던 질 때 트 랜 잭 션 스크롤 백 을 하지 않 습 니 다.예 를 들 어 하나의 이상 클래스 이름 을 지정 합 니 다: @ Transactional (noRollbackForClassName = "Runtime Exception") 여러 개의 이상 클래스 이름 을 지정 합 니 다: @ Transactional (noRollbackForClassName = {"Runtime Exception", "Exception"})
propagation
이 속성 은 업무 의 전파 행 위 를 설정 하 는 데 사용 되 며, 구체 적 인 수 치 는 표 6 - 7 을 참고 할 수 있 습 니 다.예 를 들 어: @ Transactional (propagation = Propagation. NOT SUPPORTED, readOnly = true)
isolation
이 속성 은 바 텀 데이터 뱅 크 의 트 랜 잭 션 격 리 단 계 를 설정 하 는 데 사 용 됩 니 다. 트 랜 잭 션 격 리 단 계 는 다 중 트 랜 잭 션 을 처리 하 는 데 사 용 됩 니 다. 보통 데이터 뱅 크 의 기본 격 리 단 계 를 사용 하면 됩 니 다. 기본적으로 설정 할 필요 가 없습니다.
timeout
이 속성 은 트 랜 잭 션 의 시간 초 수 를 설정 하 는 데 사 용 됩 니 다. 기본 값 은 - 1 로 시간 을 초과 하지 않 음 을 표시 합 니 다.


좋은 웹페이지 즐겨찾기