Struts+Spring+Hibernate事务处理问题:
见网上文章说事务都在Spring里处理。
(在Spring的XML配置文件里设置如下步骤)
org.apache.commons.dbcp.BasicDataSource创建数据源(JDBC连接)=》
org.springframework.orm.hibernate3.LocalSessionFactoryBean创建工厂=》
org.springframework.orm.hibernate3.HibernateTransactionManager通过工厂获取Session并生成事务对象=》
org.springframework.transaction.interceptor.TransactionInterceptor根据事务对象生成一个事务拦截器=》
org.springframework.aop.framework.ProxyFactoryBean生成代理工厂BEAN,配置如下:
<bean id="ServiceManager" abstract="true"
  class="org.springframework.aop.framework.ProxyFactoryBean">
  <property name="interceptorNames">
   <list>
    <value>transactionInterceptor</value>
   </list>
  </property>
 </bean>问题:
(1)如果采用TOMCAT连接池,使用JNDI方式来生成工厂并处理事务,Spring的XML配置应该怎样设置?(2)接问题1,可以采用HIBERNATE的工厂类(自定为:HibernateSessionFactory,使用JNDI查找TOMCAT连接池生成Session.)来代替org.springframework.orm.hibernate3.LocalSessionFactoryBean创建工厂吗?(3)org.springframework.aop.framework.ProxyFactoryBean可以用<list>设置多个拦截器,假如拦截器中有冲突,例如:
拦截器1设置了<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
拦截器2设置了<prop key="get*">PROPAGATION_REQUIRED,-BaseException</prop>
这时候会根据那个来执行?(4)例子:一个查询业务包含:a.判断用户权限 b.写入登陆日志表 c.读取表A的数据。
3个分业务都封装到ServiceManager中,ServiceManager调用HIBERNATE的DAO处理类来处理3个业务,Spring配置Action指向ServiceManager、创建ServiceManager(指向DAO处理类,创建DAO类)、指定ServiceManager的拦截器。
上面的处理有问题吗?(5)各位一般怎样处理事务?上面问题中有没原则性错误?较多问题,希望各位高手有耐心看完,并指导一下,谢谢
欢迎各位访问http://www.coodon.com与我联系。