The Debugging Chronicles : "코드의 미학"
[Spring] 트랜젝션 본문
[트랜잭션]
기능의 단위이다.
예)
사용자가 1000원을 지불하여
쿠키를 10개 구입하면
쿠키 2개를 이용하여 웹툰 1화를 미리보기
만약에 와이파이가 끊겨서
1000원이 환불이 되었으면
1 트랜잭션이다.
만약에 와이파이가 끊겼을 때
쿠키남아있고 1000원 돌아왔다면
2 트랜잭션이다.
트랜잭션 처리할 때 Advice를 사용
구매라는 종단기능에 트랜잭션이 횡단으로 기능 주입
1. 스키마 추가
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.2.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.2.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.2.xsd">
2.트랜젝션 관리자 추가
커넥션 확보를 위해 dataSource
3. advice 사용
만약에 select류만 다른 설정한다면 추가한다.
4. poincut과 연결
트랜잭션에서는 apsect 가 아닌 advisor를 사용한다.
txAdvice 가 우리에게 있지 않고 스프링에게 있기 때문이다.
하나의 서비스가 제대로 처리되지 않아서,
서비스의 처음 상태로 되돌아가는 것을 Rollback이라고 한다.
설정파일에서의 트랜잭션 처리 == 서비스와 트랜잭션이 분리되었다.
== 응집도가 높다, 결합도가 낮다
'Spring' 카테고리의 다른 글
[Spring] 파일 입출력 (0) | 2024.10.21 |
---|---|
[Spring] 템플릿 패턴 (DAO 고도화 DEVELOP DAO - 로직, 성능 개선, 최적화) (0) | 2024.10.18 |
[Spring] AOP 관점 지향 프로그램 어노테이션 설정 - 2 (Pointcut 설정의 응집도 높이기) (0) | 2024.10.16 |
[Spring] AOP 관점 지향 프로그램 어노테이션 설정 - 1 (0) | 2024.10.16 |
[Spring] "00님이 DB에 글을 등록했습니다" 로그 AOP로 설정하기 (0) | 2024.10.15 |