1,首先配置数据源
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driverClass}" />
<property name="jdbcUrl" value="${jdbc.api.url}" />
<property name="user" value="${jdbc.api.username}" />
<property name="password" value="${jdbc.api.password}" />
<property name="maxPoolSize"><value>50</value></property>
<property name="minPoolSize"><value>2</value></property>
<property name="initialPoolSize"><value>3</value></property>
<property name="acquireIncrement"><value>5</value></property>
<property name="maxStatements"><value>0</value></property>
<property name="maxStatementsPerConnection"><value>0</value></property>
<property name="maxIdleTime"><value>300</value></property>
<property name="checkoutTimeout"><value>20000</value></property>
</bean>
2,myibatis配置,使其支持注解和配置文件形式
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="classpath:mybatis/mybatis.xml" />
<property name="typeAliasesPackage" value="com.joeyon.base.api.models,com.models" />
<property name="mapperLocations" value="classpath:mybatis/**/*mapper.xml" />
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.joeyon.base.api.mappers" />
</bean>
3,配置事物管理器
<bean name="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean>
4,配置事物控制
<tx:advice id="userTxAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="delete*" propagation="REQUIRED" />
<tx:method name="insert*" propagation="REQUIRED" />
<tx:method name="update*" propagation="REQUIRED" />
<tx:method name="add*" propagation="REQUIRED" />
</tx:attributes>
</tx:advice>
<aop:config proxy-target-class="true">
<aop:pointcut id="pc"
expression="execution(public * com.joeyon.base.api.services..*.*(..))" />
<aop:advisor pointcut-ref="pc" advice-ref="userTxAdvice" />
</aop:config>