快速业务通道

在SpringSide 2.0中使用多个数据库 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23
lic String getName() {      return name;    }    public void setName(String name) {      this.name = name;    } }

那么,其DAO层的代码如下:

package com.yumdays.service; import org.springside.core.dao.HibernateEntityDao; import com.yumdays.model.Catalog; public class CatalogManager extends HibernateEntityDao<Catalog> { }

相当的简洁,该CatalogManager类提供了非常完整的find、get、save等功能。下一步,将这个类是用Spring管理起来的时候,就必须自己指定sessionFactory了,因此,在src/resources/spring/目录下的serviceContext.xml文件中,配置的形式如下:

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd"> <beans default-lazy-init="true" default-autowire="byName">       <bean id="catalogManager" class="com.yumdays.service.CatalogManager">           <property name="sessionFactory" ref="sessionFactoryIndex"/>       </bean>       <bean id="statisticManager" class="com.yumdays.service.StatisticManager">           <property name="sessionFactory" ref="sessionFactoryIndex"/>       </bean> </beans>

至于事务管理器,是在配置事务的时候用到的,因此,修改src/resources/spring目录下的applicationContext.xml文件,如下:

<!-- 以AspectJ方式 定义 AOP -->    <aop:config proxy-target-class="true">      <!-- 注意,请把第2个*号换为项目package -->      <aop:advisor pointcut="execution(* *..service.CatalogManager.*(..))" advice-ref="txAdviceIndex"/>      <aop:advisor pointcut="execution(* *..service.StatisticManager.*(..))" advice-ref="txAdviceIndex"/>    </aop:config>    <!-- 基本事务定义,使用transactionManager作事务管理,默认get*方法的事务为readonly,其余方法按默认设置.        默认的设置请参考Spring文档事务一章. -->    <tx:advice id="txAdviceIndex" transaction-manager="transactionManagerIndex">      <tx:attributes>        <tx:method name="get*" read-only="true"/>        <tx:method name="find*" read-only="true"/>        <tx:method name="*"/>      </tx:attributes>    </tx:advice>

OK,快速启动项目,但是还是没有成功,报出的错误提示说没有定义name为transactionManager的bean。经过我这么一改,当然没有定义这个bean了,但是我也没有用它啊?我用的是transactionManagerIndex,经过多次排查,我仍然没有找出问题的症结所在。

此外,在web.xml文件中配置的org.springframework.orm.hibernate3.support.OpenSessionInViewFilter也起不到作用了,因为我不知道这个类能不能管理多个SessionFactory,似乎是不行的。

由此可见,使用默认值的地方太多了,也是会害死人的。我已经向SpringSide的老大江南白衣请教这个问题了,暂时还没有得到回复

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号