SPRING 사무 실현
5743 단어 봄 사무
Spring 은 TransactionDefinition 인터페이스 에서 7 가지 유형의 사무 전파 행 위 를 규정 했다.
그들 은 사무 방법 과 사무 방법 이 내장 호출 이 발생 할 때 사 무 를 어떻게 전파 하 는 지 규정 했다.
표 1 사무 전파 행위 유형
트 랜 잭 션 전파 행위 유형
설명 하 다.
PROPAGATION_REQUIRED
현재 트 랜 잭 션 이 없 으 면 새 트 랜 잭 션 을 만 듭 니 다. 하나의 트 랜 잭 션 이 존재 한다 면 이 트 랜 잭 션 에 가입 하 십시오.이것 은 가장 흔히 볼 수 있 는 선택 이다.
PROPAGATION_SUPPORTS
현재 트 랜 잭 션 을 지원 합 니 다. 현재 트 랜 잭 션 이 없 으 면 비 트 랜 잭 션 으로 실 행 됩 니 다.
PROPAGATION_MANDATORY
현재 트 랜 잭 션 을 사용 합 니 다. 현재 트 랜 잭 션 이 없 으 면 이상 을 던 집 니 다.
PROPAGATION_REQUIRES_NEW
새 트 랜 잭 션, 현재 트 랜 잭 션 이 존재 하면 현재 트 랜 잭 션 을 걸 어 놓 습 니 다.
PROPAGATION_NOT_SUPPORTED
비 사무 방식 으로 작업 을 수행 합 니 다. 현재 사무 가 존재 하면 현재 사 무 를 걸 어 놓 습 니 다.
PROPAGATION_NEVER
비 사무 방식 으로 실행 되 며, 현재 사무 가 존재 한다 면 이상 을 던 집 니 다.
PROPAGATION_NESTED
현재 트 랜 잭 션 이 존재 한다 면, 포 함 된 트 랜 잭 션 에서 실 행 됩 니 다.현재 트 랜 잭 션 이 없 으 면 PROPAGATION 을 실행 합 니 다.REQUIRED 와 유사 한 동작 입 니 다.
ibatis spring 트 랜 잭 션 구현 1. 동적 데이터 원본 설정 - KEY 경로 에 따라
<bean id="dataSource" class="com.xiao.AbstractRoutingDataSource">
<property name="targetDataSources">
<map key-type="java.lang.String">
<entry key="db2" value-ref="ds-db2" />
<entry key="sqlserver" value-ref="ds-sql" />
</map>
</property>
<property name="defaultTargetDataSource" ref="ds-db2" />
</bean>
2. 트 랜 잭 션 설정
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="insert*" propagation="REQUIRED" rollback-for="Throwable" />
<tx:method name="delete*" propagation="REQUIRED" rollback-for="Throwable" />
<tx:method name="update*" propagation="REQUIRED" rollback-for="Throwable" />
<tx:method name="toggle*" propagation="REQUIRED" rollback-for="Throwable" />
<tx:method name="query*" read-only="true" />
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut id="servicePointcut" expression="execution(* com.xiao..*ServiceImpl.*(..))" />
<aop:advisor advice-ref="txAdvice" pointcut-ref="servicePointcut" />
<!-- <aop:advisor advice-ref="txAdvice" pointcut-ref="otherPointcut" /> -->
</aop:config>
3. IBATIS 설정
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocations">
<list>
<value>classpath:/com/xiao/sqlmap-config.xml</value>
</list>
</property>
<property name="dataSource" ref="dataSource" />
<property name="lobHandler" ref="lobHandler" />
</bean>
4. 트 랜 잭 션 설정 XML 추가