<!-- 配置SessionFactory --> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="configLocation"> <value>classpath:hibernate.cfg.xml</value> </property> </bean> <!-- 配置事务管理器 --> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory"/> </bean> <!-- 事务的传播特性 --> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="add*" propagation="REQUIRED"/> <tx:method name="del*" propagation="REQUIRED"/> <tx:method name="modify*" propagation="REQUIRED"/> <tx:method name="*" propagation="REQUIRED" read-only="true"/> </tx:attributes> </tx:advice> <!-- 哪些类哪些方法使用事务 --> <aop:config> <aop:pointcut expression="execution(* com.service.*.*(..))" id="transactionPC"/> <aop:advisor advice-ref="txAdvice" pointcut-ref="transactionPC"/> </aop:config> <!-- 普通IOC注入 --> <bean id="userManager" class="com.service.UserManagerImpl"> <property name="logManager" ref="logManager"/> <property name="sessionFactory" ref="sessionFactory"/> </bean> <bean id="logManager" class="com.service.LogManagerImpl"> <property name="sessionFactory" ref="sessionFactory"/> </bean>
<tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="add*" propagation="REQUIRED"/> <tx:method name="del*" propagation="REQUIRED"/> <tx:method name="modify*" propagation="REQUIRED"/> <tx:method name="*" propagation="REQUIRED" read-only="true"/> </tx:attributes> </tx:advice>
上面的传播特性配的太屌了。
refurl:http://my.oschina.net/dongli/blog/56904
http://jinnianshilongnian.iteye.com/blog/1442376