The Debugging Chronicles : "코드의 미학"

[Spring] 트랜젝션 본문

Spring

[Spring] 트랜젝션

sweetseonah1004 2024. 10. 18. 15:43

[트랜잭션]

기능의 단위이다.

 

예)

사용자가 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이라고 한다.

 

 

설정파일에서의 트랜잭션 처리 == 서비스와 트랜잭션이 분리되었다.
== 응집도가 높다, 결합도가 낮다