- <bean id="transactionManager"
- class="org.springframework.orm.hibernate3.HibernateTransactionManager">
- <property name="sessionFactory">
- <ref bean="sFactory" />
- </property>
- </bean>
-
- <tx:advice id="txAdvice" transaction-manager="transactionManager">
- <tx:attributes>
- <tx:method name="*" propagation="REQUIRED" />
- </tx:attributes>
- </tx:advice>
-
- <aop:config>
- <aop:pointcut id="tx" expression="execution(* org.ymm.services.LoginService.*(..))" />
- <aop:advisor advice-ref="txAdvice" pointcut-ref="tx" />
- </aop:config>
Spring中進行事務管理也是利用AOP(面向切片編程)的方式,spring在通過攔截器,加載事務.
bean是創建了一個事務管理,
tx是對攔截切面的描述
aop是配置一個切面
當我們配置完了,最重要的是得到spring創建的當前CurrentSession
- <!-- <prop key="hibernate.current_session_context_class">thread</prop> -->
- <prop key="hibernate.current_session_context_class">org.springframework.orm.hibernate3.SpringSessionContext</prop>