1. 트랜잭션 매니저의 구현 클래스
- 트랜잭션 매니저의 이용방법은 데이터 엑세스 기술에 의존하지 않는다
- 공통 인터페이스가 존재함
- Bean 정의(DataSourceTransactionManager)
2. 트랜잭션 기능의 사용법
2_1. 선언적 명시적 트랜잭션
1) 선언적 트랜잭션
- 트랜잭션 처리의 대상으로 하는 메소드를 Bean정의 파일 혹은 애노테이션으로 지정
- 트랜잭션 정보도 함께 설정하며 나머지는 스프링이 자동으로 프록시를 생성해서 트랜잭션 처리 함
- 애노테이션 소스 코드의 트랜잭션 처리를 기술할 필요가 없으므로 좋다
2) 명시적 트랜잭션
- 트랜잭션 매니저의 API를 애플리케이션 프로그램에서 직접 호출하여 트랜잭션 처리
- 애플리케이션 소스 코드에 트랜잭션 처리가 기술되어 코드가 복잡해짐
2_2. 선언적 트랜잭션 설정
1) Bean정의 파일 의한 선언적 트랜잭션- 어드바이스 설정
a. 기본 설정
- 와일드카드(*) 함으로서 모든 메소드에 기본 트랜잭션 정의 정보가 됨
b. 정의 정보 설정
- 전파속성 : PROPARGATION_REQUIRED
- 독립성 수준 : READ_COMMITED
- 시간만료 : 10초
- 읽기 전용상태 : false
- 롤백대상 예외 : sample.business....
c. 대상 오브젝트에 어드바이스 적용
- 이름끝에 Service 들어간 메소드 모두 지정
- 포인트 컷을 메소드가 아니라 애노테이션으로 지정하는 법
- Example(@Service 붙은 모든 클래스를 트랜잭션 대상으로 할때)
2) 애노테이션 의한 선언적 트랜잭션
a. 기본 설정
b. 메소드 마다 트랜잭션 정의 정보
c. Bean 정의 파일에 @Transactional을 유효하게 설정 해야함
2_3. 명시적 트랜잭셔 사용법
3. 트랜잭션 시작/ 종료 로그를 출력 하는 법
- DataSourceTransactionManger와 Log4j를 이용할 때, Log4j에 설정
3_1. XML 경우
3_2. property
'Back-End > SpringFrame_1' 카테고리의 다른 글
[Spring] PresentationLayer_Function of Spring (0) | 2016.08.16 |
---|---|
[Spring] PresentationLayer_1 (0) | 2016.08.08 |
[Spring]BusinessLayer_1 (0) | 2016.08.01 |
[Spring] DataAccessLayer_2 (0) | 2016.07.31 |
[Spring] DataAccessLayer_1 (0) | 2016.07.25 |