Spring Transaction:通過(guò)Template+Callback機(jī)制,實(shí)現(xiàn)對(duì)各種事務(wù)的統(tǒng)一封裝。
<bean id="transactionManager" //對(duì)JDBC Transaction的封裝
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource">
<ref bean="dataSource"/>
</property>
</bean>
<bean id="transactionManager" //對(duì)Hibernate事務(wù)的封裝
class="org.springframework.orm.hibernate.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
<bean id="transactionManager"http://對(duì)JDO事務(wù)的封裝
class="org.springframework.orm.jdo.JdoTransactionManager">
<property name="persistenceManagerFactory">
<ref bean="persistenceManagerFactory"/>
</property>
</bean>
<bean id="transactionManager" //對(duì)JTA 事務(wù)的封裝
class="org.springframework.transaction.jta.JtaTransactionManager">
<property name="transactionManagerName">
<value>java:/TransactionManager</value>
</property>
</bean>
<bean id="courseService"http://利用AOP,將TransactionManager和普通的Service編織起來(lái),實(shí)現(xiàn)事務(wù)。
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="proxyInterfaces">//編織后對(duì)外的接口
<list>
<value>com.springinaction.training.service.CourseService</value>
</list>
</property>
<property name="target">//目標(biāo)
<ref bean="courseServiceTarget"/>
</property>
<property name="transactionManager">//植入的事務(wù)管理者
<ref bean="transactionManager"/>
</property>
<property name="transactionAttributeSource">//事務(wù)的參數(shù)(隔離度,方法名等)
<ref bean="attributeSource"/>
</property>
</bean>