aop 트랜잭션 예제

플랫폼트랜잭션관리자 구현에는 일반적으로 JDBC, JTA, 최대 절전 모드 등 작업 환경이 필요한 환경이 필요합니다. 다음 예제에서는 로컬 PlatformTransactionManager 구현을 정의하는 방법을 보여 주며 있습니다. (이 예제에서는 일반 JDBC에서 작동합니다.) 이 장에서는 AOP를 자세히 설명하는 것과 는 관련이 없습니다(트랜잭션에 적용되는 경우 제외). 다음 AOP 구성 및 AOP에 대한 자세한 내용은 스프링이 있는 가로 세로 지향 프로그래밍 10장을 참조하십시오. 이러한 설정은 표준 트랜잭션 개념을 반영합니다. 필요한 경우 트랜잭션 격리 수준 및 기타 핵심 트랜잭션 개념에 대해 설명하는 리소스를 참조하십시오. 이러한 개념을 이해하는 것은 스프링 프레임워크 또는 트랜잭션 관리 솔루션을 사용하는 데 필수적입니다. 나는 봄 거래에 하나의 문제가있다. 위의 예는 독립 실행형 응용 프로그램으로 실행 될 때 나를 위해 잘 작동 하지만 내 웹 응용 프로그램에서 동일한 트랜잭션 지원을 구현 하려고 할 때 그것은 작동 하지 않습니다 당신이 나를 안내 할 수 있습니다. 스프링 프레임워크는 프로그래밍 방식의 트랜잭션 관리 방법 인 “샘플 프로그램 다운로드 및 자동 실행” 줄이 링크처럼 보이지 않는 두 가지 방법입니다.

예제를 다운로드 할 수 있도록 하는 데 시간이 걸렸습니다. 프로그래밍 방식의 트랜잭션 관리를 통해 개발자는 기본 트랜잭션 인프라를 실행할 수 있는 Spring Framework 트랜잭션 추상화를 작업합니다. 기본 선언적 모델을 사용하면 개발자는 일반적으로 트랜잭션 관리와 관련된 코드를 거의 또는 전혀 쓰지 않으므로 Spring Framework 트랜잭션 API 또는 다른 트랜잭션 API에 종속되지 않습니다. Spring의 철학에 따라 PlatformTransactionManager 인터페이스의 메서드에서 throw할 수 있는 트랜잭션예외는 선택 취소되지 않습니다(즉, java.lang.RuntimeException 클래스를 확장합니다). 트랜잭션 인프라 오류는 거의 변함없이 치명적입니다. 응용 프로그램 코드가 트랜잭션 오류에서 실제로 복구할 수 있는 드문 경우지만 응용 프로그램 개발자는 트랜잭션Exception을 catch하고 처리하도록 선택할 수 있습니다. 중요한 점은 개발자가 강제로 그렇게 할 수 없다는 것입니다. Spring은 선언적 트랜잭션을 구현하기 위해 AOP에 의존합니다. 이전 섹션에서는 응용 프로그램에서 선언적으로 클래스( 일반적으로 서비스 계층 클래스)에 대한 트랜잭션 설정을 지정하는 방법에 대한 기본 사항을 설명했습니다. 이 섹션에서는 간단한 선언적 방식으로 트랜잭션 롤백을 제어하는 방법에 대해 설명합니다. 다음 인터페이스와 해당 수행자 구현을 고려하십시오. 이 예제에서는 Foo 및 Bar 클래스를 자리 표시자로 사용하여 특정 도메인 모델에 집중하지 않고 트랜잭션 사용에 집중할 수 있습니다.

이 예제에서는 DefaultFooService 클래스가 지원되지 않는OperationException 인스턴스를 각 구현된 메서드의 본문에 throw한다는 사실은 양호합니다. 이를 통해 지원되지 않는OperationException 인스턴스에 대한 응답으로 생성된 다음 롤백된 트랜잭션을 볼 수 있습니다.