Spring 주해 의 사무 관리
@ 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 로 시간 을 초과 하지 않 음 을 표시 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
thymeleaf로 HTML 페이지를 동적으로 만듭니다 (spring + gradle)지난번에는 에서 화면에 HTML을 표시했습니다. 이번에는 화면을 동적으로 움직여보고 싶기 때문에 입력한 문자를 화면에 표시시키고 싶습니다. 초보자의 비망록이므로 이상한 점 등 있으면 지적 받을 수 있으면 기쁩니다! ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.