<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>
com/study/hibernate/entity/TblApplicant.hbm.xml
</value>
<value>
com/study/hibernate/entity/TblCity.hbm.xml
</value>
<value>
com/study/hibernate/entity/TblCountry.hbm.xml
</value>
<value>
com/study/hibernate/entity/TblEducation.hbm.xml
</value>
<value>
com/study/hibernate/entity/TblIntermediary.hbm.xml
</value>
<value>
com/study/hibernate/entity/TblIntermediarydata.hbm.xml
</value>
<value>
com/study/hibernate/entity/TblIntermediarydataservice.hbm.xml
</value>
<value>
com/study/hibernate/entity/TblOnly.hbm.xml
</value>
<value>
com/study/hibernate/entity/TblOnlydata.hbm.xml
</value>
<value>
com/study/hibernate/entity/TblProduct.hbm.xml
</value>
<value>
com/study/hibernate/entity/TblProfessional.hbm.xml
</value>
<value>
com/study/hibernate/entity/TblProvince.hbm.xml
</value>
<value>
com/study/hibernate/entity/TblRecord.hbm.xml
</value>
<value>
com/study/hibernate/entity/TblSchool.hbm.xml
</value>
<value>
com/study/hibernate/entity/TblSchooldata.hbm.xml
</value>
<value>com/study/hibernate/entity/TblSys.hbm.xml</value>
<value>
com/study/hibernate/entity/TblType.hbm.xml
</value>
<value>
com/study/hibernate/entity/TblUser.hbm.xml
</value>
<value>
com/study/hibernate/entity/TblZhuanye.hbm.xml
</value>
</list>
</property>
</bean>

 <!-- 配置事务管理器 -->
<bean id="txManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<tx:method name="add*" propagation="REQUIRED" />
<tx:method name="del*" propagation="REQUIRED" />
<tx:method name="update*" propagation="REQUIRED" />
<tx:method name="get*" propagation="SUPPORTS" read-only="true" />
<tx:method name="query*" propagation="SUPPORTS" read-only="true" />
<tx:method name="*" rollback-for="Exception" />
</tx:attributes>
</tx:advice>
<aop:config>
<aop:advisor pointcut="execution(* com.study.*service*.*(..))"
advice-ref="txAdvice" />
</aop:config>
 <!-- 配置事务管理器结束 -->

<!-- dao接口 -->
<bean id="TblOnlyDAO" class="com.study.hibernate.dao.impl.TblOnlyDaoImpl">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="TblZhuanyeDAO" class="com.study.hibernate.dao.impl.TblZhuanyeDaoImpl">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="TblOnlydataDAO" class="com.study.hibernate.dao.impl.TblOnlydataDaoImpl">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="TblProvinceDAO" class="com.study.hibernate.dao.impl.TblProvinceDaoImpl">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="TblTypeDAO" class="com.study.hibernate.dao.impl.TblTypeDaoImpl">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="TblCountryDAO" class="com.study.hibernate.dao.impl.TblCountryDaoImpl">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="TblIntermediarydataserviceDAO"
class="com.study.hibernate.dao.impl.TblIntermediarydataserviceDaoImpl">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="TblProfessionalDAO" class="com.study.hibernate.dao.impl.TblProfessionalDaoImpl">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="TblIntermediaryDAO" class="com.study.hibernate.dao.impl.TblIntermediaryDaoImpl">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="TblSysDAO" class="com.study.hibernate.dao.impl.TblSysDaoImpl">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="TblSchoolDAO" class="com.study.hibernate.dao.impl.TblSchoolDaoImpl">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="TblProductDAO" class="com.study.hibernate.dao.impl.TblProductDaoImpl">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="TblEducationDAO" class="com.study.hibernate.dao.impl.TblEducationDaoImpl">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="TblCityDAO" class="com.study.hibernate.dao.impl.TblCityDaoImpl">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="TblSchooldataDAO" class="com.study.hibernate.dao.impl.TblSchooldataDaoImpl">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="TblUserDAO" class="com.study.hibernate.dao.impl.TblUserDaoImpl">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="TblIntermediarydataDAO" class="com.study.hibernate.dao.impl.TblIntermediarydataDaoImpl">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="TblApplicantDAO" class="com.study.hibernate.dao.impl.TblApplicantDaoImpl">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="TblRecordDAO" class="com.study.hibernate.dao.impl.TblRecordDaoImpl">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<!-- dao层结束 -->
<!-- 业务层DAO类注入 -->
<!-- Only会员模块 -->
<bean id="onlyService" class="com.study.service.impl.OnlyServiceImpl">
<property name="tblTypedao" ref="TblTypeDAO"></property>
<property name="tblOnlyDao" ref="TblOnlyDAO"></property>
<property name="tblEducationDao" ref="TblEducationDAO"></property>
<property name="tblUserDao" ref="TblUserDAO"></property>
<property name="tblOnlydataDao" ref="TblOnlydataDAO"></property>
</bean>
<!-- School学校模块 -->
<bean id="schoolService" class="com.study.service.impl.SchoolServiceImpl">
<property name="tblSchoolDao" ref="TblSchoolDAO"></property>
<property name="tblUserDao" ref="TblUserDAO"></property>
<property name="professionalDao" ref="TblProfessionalDAO"></property>
<property name="schoolDataDao" ref="TblSchooldataDAO"></property>
<property name="zhuanyeDao" ref="TblZhuanyeDAO"></property>
<property name="educationDao" ref="TblEducationDAO"></property>
</bean>
<!-- sys系统管理员模块 -->
<bean id="sysService" class="com.study.service.impl.SysServiceImpl">
<!-- 再此注入dao -->
<property name="tblSysDao" ref="TblSysDAO"></property>
</bean>
<!--intermediary中介模块 --> <bean id="intermediaryService" class="com.study.service.impl.IntermediaryServiceImpl">
<property name="tblIntermediaryDao" ref="TblIntermediaryDAO"></property>
<property name="tblIntermediarydataserviceDao" ref="TblIntermediarydataserviceDAO"></property>
<property name="tblUserDao" ref="TblUserDAO"></property>
<property name="tblIntermediarydataDao" ref="TblIntermediarydataDAO"></property>
<property name="tblProvinceDao" ref="TblProvinceDAO"></property>
<property name="tblCityDao" ref="TblCityDAO"></property>
</bean>
    <!-- 业务层DAO类注入结束 -->


<!-- action业务层注入 -->
<!-- Only会员模块 -->
<bean id="onlyAction" class="com.study.action.only.OnlyAction">
<property name="onlyService" ref="onlyService"></property>
</bean>
<!-- School学校模块 -->
<bean id="schoolAction" class="com.study.action.school.SchoolAction">
<property name="schoolService" ref="schoolService"></property>
</bean>
<!-- sys系统管理员模块 -->
<bean id="sysAction" class="com.study.action.sys.SysAction">
<property name="sysService" ref="sysService"></property>
</bean>
<!--intermediary中介模块 -->

<bean id="intermediaryAction" class="com.study.action.intermediary.IntermediaryAction">
<property name="intermediaryService" ref="intermediaryService"></property>
<property name="onlyService" ref="onlyService"></property>
</bean>
</beans>配置的这个事务感觉虽然不报错,但根本没起作用,在web.xml配置的<!--  OpenSessionInViewFilter过滤器 --> 
  <filter>
  <filter-name>lazyLoadingFilter</filter-name> 
  <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class> 
  </filter>
  <filter-mapping>
  <filter-name>lazyLoadingFilter</filter-name> 
  <url-pattern>*.action</url-pattern> 
  </filter-mapping>
因为事务的原因也没成功!
谁能说下原因或者有配置好的demo!

解决方案 »

  1.   


    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xmlns:tx="http://www.springframework.org/schema/tx"
        xsi:schemaLocation="http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
        http://www.springframework.org/schema/tx 
        http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
        http://www.springframework.org/schema/aop 
        http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
        <!-- 定义数据源Bean,使用C3P0数据源实现 -->
        <bean id="dataSource"
            class="com.mchange.v2.c3p0.ComboPooledDataSource"
            destroy-method="close">
            <!-- 指定连接数据库的驱动 -->
            <property name="driverClass" value="com.mysql.jdbc.Driver" />
            <!-- 指定连接数据库的URL -->
            <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/数据库名称" />
            <!-- 指定连接数据库的用户名 -->
            <property name="user" value="root" />
            <!-- 指定连接数据库的密码 -->
            <property name="password" value="" />
            <!-- 指定连接数据库连接池的最大连接数 -->
            <property name="maxPoolSize" value="40" />
            <!-- 指定连接数据库连接池的最小连接数 -->
            <property name="minPoolSize" value="1" />
            <!-- 指定连接数据库连接池的初始化连接数 -->
            <property name="initialPoolSize" value="1" />
            <!-- 指定连接数据库连接池的连接的最大空闲时间 -->
            <property name="maxIdleTime" value="20" />
        </bean>    <!-- 定义Hibernate的SessionFactory -->
        <bean id="sessionFactory"
            class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
            <!-- 依赖注入数据源,注入正是上面定义的dataSource -->
            <property name="dataSource" ref="dataSource" />
            <!-- mappingResouces属性用来列出全部映射文件 -->
            <property name="mappingResources">
                <list>
                    <!-- 以下用来列出Hibernate映射文件 -->
                    <value>包名/xxx.hbm.xml</value>            </list>
            </property>
            <!-- 定义Hibernate的SessionFactory的属性 -->
            <property name="hibernateProperties">
                <props>
                    <!-- 指定数据库方言 -->
                    <prop key="hibernate.dialect">
                        org.hibernate.dialect.MySQLInnoDBDialect
                    </prop>
                    <!-- 是否根据需要每次自动创建数据库 -->
                    <prop key="hibernate.hbm2ddl.auto">update</prop>
                    <!-- 显示Hibernate持久化操作所生成的SQL -->
                    <prop key="hibernate.show_sql">true</prop>
                    <!-- 将SQL脚本进行格式化后再输出 -->
                    <prop key="hibernate.format_sql">true</prop>
                </props>
            </property>
        </bean>    <!-- 配置Hibernate的局部事务管理器,使用HibernateTransactionManager类 -->
        <!-- 该类实现PlatformTransactionManager接口,是针对Hibernate的特定实现-->
        <bean id="transactionManager"
            class="org.springframework.orm.hibernate3.HibernateTransactionManager">
            <!-- 配置HibernateTransactionManager时需要依注入SessionFactory的引用 -->
            <property name="sessionFactory" ref="sessionFactory" />
        </bean>    <!-- 配置事务切面Bean,指定事务管理器 -->
        <tx:advice id="txAdvice" transaction-manager="transactionManager">
            <!-- 用于配置详细的事务语义 -->
            <tx:attributes>
                <!-- 所有以'xxx'开头的方法是read-only的 -->
                <tx:method name="xxx*" read-only="true" />
                <!-- 其他方法使用默认的事务设置 -->
                <tx:method name="*" />
            </tx:attributes>
        </tx:advice>    <aop:config>
            <!-- 配置一个切入点,匹配某某某包下
                所有以Impl结尾的类的所有方法的执行 -->
            <aop:pointcut id="leePointcut"
                expression="execution(* 包名.*Impl.*(..))" />
            <!-- 指定在leePointcut切入点应用txAdvice事务切面 -->
            <aop:advisor advice-ref="txAdvice" pointcut-ref="leePointcut" />
        </aop:config>
    </beans>