spring事物配置示例

来源:CSDN博客 作者:suncheng… 2008-04-09 出处:pcdog.com

hibernate  spring  

以前项目中经常用spring,事务处理还没有亲自配置过, 惭愧。现在马上上路.

    首先,在spring容器中,配置transactionManager,这个有好多实现,这里以HibernateTransactionManager为例,

 <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
            <property name="sessionFactory">
                <ref local="sessionFactory" />
            </property>
        </bean>
 

    然后,再定义一个事务模板

 <bean id="txProxyTemplate" abstract="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
            <property name="transactionManager">
                <ref bean="transactionManager" />
            </property>
            <property name="transactionAttributes">
                <props>
                    <prop key="save*">PROPAGATION_REQUIRED,-Exception</prop>
                    <prop key="remove*">PROPAGATION_REQUIRED,-Exception</prop>
                    <prop key="update*">PROPAGATION_REQUIRED,-Exception</prop>
                    <prop key="incress*">PROPAGATION_REQUIRED,-Exception</prop>
                    <prop key="*">PROPAGATION_REQUIRED</prop>
                </props>
            </property>
        </bean>

    这个模板怎样应用到业务方法上呢?请看下面的配置

    <!--
            <bean id="userService" class="com.sclsch.service.impl.UserServiceImpl">
            <property name="userDao">
            <ref bean="BmUserDAO" />
            </property>
            </bean>
        -->
        <!-- 为userService配置事务-->
        <bean id="userService" parent="txProxyTemplate">
            <property name="target">
                <bean class="com.sclsch.service.impl.UserServiceImpl">
                    <property name="userDao">
                        <ref bean="BmUserDAO" />
                    </property>
                </bean>
            </property>
        </bean>

         注释部分是原来没有配置事务的service. parent指定为这个service配置的事务模板.


更多内容请看PCdog.com--Spring开发技术篇  win98使用技巧专题
上一篇:hibernate 经验谈
下一篇:把握现在,掌控未来:2008 Java开发展望