사무 관리

사무 관리
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 주 해 를 사용 하 더 라 도 수 정 됩 니 다.

좋은 웹페이지 즐겨찾기