사무 관리
Spring 사무 관 리 는 성명 식 사무 와 프로 그래 밍 식 사무 로 나 뉜 다.
프로 그래 밍 식 사무 관 리 는 TransactionTemplate 를 사용 하거나 바 텀 의 PlatformTransactionManager 를 직접 사용 합 니 다.프로 그래 밍 식 사무 관리 에 있어 서 spring 은 TransactionTemplate 를 사용 하 는 것 을 추천 합 니 다.
성명 식 사무 관 리 는 절단면 을 향 한 AOP 기반 위 에 세 워 진 것 이다.그 본질은 방법 을 앞 뒤로 차단 한 다음 에 목표 방법 이 시작 되 기 전에 하나의 사 무 를 만 들 거나 가입 하 는 것 이다.목표 방법 을 실행 한 후에 실행 상황 에 따라 사 무 를 제출 하거나 스크롤 백 하 는 것 이다.이런 방식 은 프로 그래 밍 식 사무 관리 보다 좋 고 Spring 이 제창 하 는 비 침입 식 개발 방식 이다.Spring 의 성명 식 사무 도 두 가지 방식 으로 나 뉘 는데 하 나 는 설정 파일 을 기반 으로 하 는 방식 이 고 다른 하 나 는@Transaction 주 해 를 기반 으로 하 는 방식 입 니 다.일반적으로@Transaction 같은 방식 으로 사무 관 리 를 사용 하 는 것 을 추천 합 니 다.
Spring 트 랜 잭 션 의 격 리 단계
*8195°격 리 단 계 는 여러 개의 동시 다발 적 인 사무 간 의 격 리 정 도 를 말한다.TransactionDefinition 인터페이스 에서 격 리 단 계 를 나타 내 는 상수 다섯 개 를 정의 합 니 다.
TransactionDefinition.ISOLATION_DEFAULT: , 。 , TransactionDefinition.ISOLATION_READ_COMMITTED。
TransactionDefinition.ISOLATION_READ_UNCOMMITTED: 。 , , 。 PostgreSQL 。
TransactionDefinition.ISOLATION_READ_COMMITTED: 。 , 。
TransactionDefinition.ISOLATION_REPEATABLE_READ: , 。 。
TransactionDefinition.ISOLATION_SERIALIZABLE: , , , 、 。 。 。
트 랜 잭 션 커 뮤 니 케 이 션
이른바 사무의 전파 행 위 는 현재 업 무 를 시작 하기 전에 하나의 사무 상하 문 이 이미 존재 한다 면 이 때 몇 가지 옵션 을 선택 하면 하나의 사무 적 방법의 집행 행 위 를 지정 할 수 있다.TransactionDefinition 정의 에는 다음 과 같은 전파 행 위 를 나타 내 는 상수 가 포함 되 어 있 습 니 다.
TransactionDefinition.PROPAGATION_REQUIRED: , ; , 。 。
TransactionDefinition.PROPAGATION_REQUIRES_NEW: , , 。
TransactionDefinition.PROPAGATION_SUPPORTS: , ; , 。
TransactionDefinition.PROPAGATION_NOT_SUPPORTED: , , 。
TransactionDefinition.PROPAGATION_NEVER: , , 。
TransactionDefinition.PROPAGATION_MANDATORY: , ; , 。
TransactionDefinition.PROPAGATION_NESTED: , ; , TransactionDefinition.PROPAGATION_REQUIRED。
트 랜 잭 션 스크롤 백
*8195:8195:spring 사무 관리자 에 게 하나의 사 무 를 스크롤 백 하 라 고 지시 하 는 추천 방법 은 현재 업무 의 문맥 에서 이상 을 던 지 는 것 입 니 다.spring 트 랜 잭 션 관리 자 는 처리 되 지 않 은 이상 을 포착 한 후 규칙 에 따라 이상 한 트 랜 잭 션 을 던 질 지 여 부 를 결정 합 니 다.
기본 설정 에서 spring 은 이상 이 실 행 될 때 unchecked 이상 일 때 만 이 사 무 를 스크롤 백 합 니 다.즉,이상 이 Runtime Exception 인 하위 클래스(Errors 도 트 랜 잭 션 스크롤 백 을 초래 할 수 있 습 니 다)를 던 지면 checked 이상 을 던 지면 트 랜 잭 션 이 스크롤 백 되 지 않 습 니 다.checked 이상 을 포함 하여 이상 을 던 질 때 스크롤 백 을 명확 하 게 설정 할 수 있 습 니 다.이상 하 게 던 질 때 스크롤 백 하지 않 는 것 도 명확 하 게 정의 할 수 있다.또한 setRollback Only()방법 을 통 해 하나의 사 무 를 스크롤 백 해 야 한 다 는 것 을 프로 그래 밍 할 수 있 습 니 다.setRollback Only()를 호출 한 후에 실행 할 수 있 는 유일한 동작 은 스크롤 백 입 니 다.
@Transaction 주석
*8195:8195:@Transaction 주 해 를 사용 할 때 try{}catch{}을 사용 하지 마 십시오.try{}catch{}를 사용 하여 이상 을 포착 한 후 처리 하지 않 으 면 업무 가 정상적으로 굴 러 갈 수 없 기 때 문 입 니 다.
*8195,@Transaction 주 해 는 인터페이스,클래스 의 방법 이나 인터페이스 와 클래스 에 사용 할 수 있 으 나 Public 로 수식 하 는 방법 에 만 적 용 됩 니 다.기본 적 인 상황 에서 외부 에서 호출 된 방법 만 AOP 에이전트 에 의 해 포 착 됩 니 다.즉,클래스 내부 방법 이 이러한 내부 의 다른 방법 을 호출 하 는 것 은 업무 행 위 를 일 으 키 지 않 습 니 다.호출 된 방법 이@Transactional 주 해 를 사용 하 더 라 도 수 정 됩 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
thymeleaf로 HTML 페이지를 동적으로 만듭니다 (spring + gradle)지난번에는 에서 화면에 HTML을 표시했습니다. 이번에는 화면을 동적으로 움직여보고 싶기 때문에 입력한 문자를 화면에 표시시키고 싶습니다. 초보자의 비망록이므로 이상한 점 등 있으면 지적 받을 수 있으면 기쁩니다! ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.