Chinaunix

标题: spring和ibatis集合,事务配置的疑问???? [打印本页]

作者: freedomch2    时间: 2009-05-12 21:07
标题: spring和ibatis集合,事务配置的疑问????
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>

        <import resource="applicationContext-security.xml" />
        <import resource="applicationContext-service.xml" />
        <import resource="applicationContext-action.xml" />
        <import resource="applicationContext-dao.xml" />

        <!-- iBatis SqlMapClient -->
        <bean id="dataaccess.object" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
        <property name="mappingLocations">   
            <value>classpath:/com/**/*SqlMap.xml</value>   
        </property>
        <property name="configLocation">
            <value>/WEB-INF/SqlMapConfig.xml</value>
        </property>
        <property name="dataSource" ref="dataaccess.dataSource" />
    </bean>
   
    <!-- 事务拦截器 -->
    <bean id="dataaccess.transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">
            <property name="transactionManager" ref="dataaccess.transactionManager"/>
               <property name="transactionAttributes">
                       <props>
                                <prop key="*">ROPAGATION_REQUIRED</prop>
                                <!-- prop key="find*">ROPAGATION_REQUIRED,readOnly</prop -->
                        </props>
                </property>
    </bean>
   
    <!-- 事务管理器 -->
    <bean id="dataaccess.transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource" ref="dataaccess.dataSource" />
    </bean>
       
        <!-- 数据源 -->
        <bean id="dataaccess.dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
                <property name="driverClass">
                        <value>oracle.jdbc.OracleDriver</value>
                </property>
                <property name="jdbcUrl">
                        <value>jdbcracle:thin127.0.0.1:1521:CH2</value>
        </property>
        <property name="user">
            <value>CH2</value>
        </property>
        <property name="password">
            <value>CHANGCHANG</value>
        </property>
        <!-- 最少空闲连接数 -->
        <property name="minPoolSize">
            <value>16</value>
        </property>
        <!-- 最大空闲连接数 -->
        <property name="maxPoolSize">
            <value>64</value>
        </property>
        <!-- 初始连接数 -->
        <property name="initialPoolSize">
            <value>16</value>
        </property>
        <!-- 最大空闲时间 -->
        <property name="maxIdleTime">
            <value>0</value>
        </property>
        <!-- 连接不足时同时打开的连接数 -->
        <property name="acquireIncrement">
            <value>8</value>
        </property>
        <property name="maxStatements">
            <value>0</value>
        </property>
        <property name="idleConnectionTestPeriod">
            <value>60</value>
        </property>
        <property name="acquireRetryAttempts">
            <value>1</value>
        </property>
        <property name="breakAfterAcquireFailure">
            <value>false</value>
        </property>
        <property name="testConnectionOnCheckout">
            <value>false</value>
        </property>
    </bean>
   

        <!-- 事务和权限拦截(控制层对象) -->
        <bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
                <property name="beanNames">
                        <list>
                                <value>action.*</value>
                        </list>
                </property>
                <property name="interceptorNames">
                        <list>
                                <value>security.interceptor</value>
                                <value>dataaccess.transactionInterceptor</value>

                        </list>
                </property>
        </bean>
   
</beans>


-----------------------------------------ibatis配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>

        <settings cacheModelsEnabled="true" enhancementEnabled="true" lazyLoadingEnabled="true" maxRequests="512" maxSessions="256" maxTransactions="256" useStatementNamespaces="true" />
       
    <sqlMap resource="com/core/dataaccess/DataAccessSqlMap.xml" />
   
</sqlMapConfig>

拦截action层
权限拦截器security.interceptor有效
但是dataaccess.transactionInterceptor事务拦截器好像没有反应
在dao层里调用sqlMapClient.getCurrentConnection()返回Null
看API是说没有事务的话才会返回null

各位帮忙看下哪里有毛病?




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2