97 lines
5.0 KiB
XML
97 lines
5.0 KiB
XML
<?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:tx="http://www.springframework.org/schema/tx"
|
||
xmlns:aop="http://www.springframework.org/schema/aop"
|
||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||
http://www.springframework.org/schema/beans/spring-beans.xsd
|
||
http://www.springframework.org/schema/tx
|
||
http://www.springframework.org/schema/tx/spring-tx.xsd
|
||
http://www.springframework.org/schema/aop
|
||
http://www.springframework.org/schema/aop/spring-aop.xsd">
|
||
|
||
<bean name="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
|
||
<property name="driverClassName" value="${jdbc.driver}" />
|
||
<property name="url" value="${jdbc.url}" />
|
||
<property name="username" value="${jdbc.username}" />
|
||
<property name="password" value="${jdbc.password}" />
|
||
|
||
<!-- 初始化连接大小 -->
|
||
<property name="initialSize" value="${initialSize}" />
|
||
<!-- 连接池最大使用连接数量 -->
|
||
<property name="maxActive" value="${maxActive}" />
|
||
|
||
<!-- 连接池最小空闲 -->
|
||
<property name="minIdle" value="${minIdle}" />
|
||
<!-- 获取连接最大等待时间 -->
|
||
<property name="maxWait" value="${maxWait}" />
|
||
<property name="poolPreparedStatements" value="${poolPreparedStatements}" />
|
||
<property name="maxPoolPreparedStatementPerConnectionSize"
|
||
value="${maxPoolPreparedStatementPerConnectionSize}" />
|
||
<!-- 用来检测有效sql -->
|
||
<property name="testOnBorrow" value="false" />
|
||
<property name="testOnReturn" value="false" />
|
||
<property name="testWhileIdle" value="true" />
|
||
<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
|
||
<property name="timeBetweenEvictionRunsMillis" value="${timeBetweenEvictionRunsMillis}" />
|
||
<!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
|
||
<property name="minEvictableIdleTimeMillis" value="${minEvictableIdleTimeMillis}" />
|
||
<!-- 打开removeAbandoned功能 -->
|
||
<property name="removeAbandoned" value="true" />
|
||
<!-- 1800秒,也就是30分钟 -->
|
||
<property name="removeAbandonedTimeout" value="${removeAbandonedTimeout}" />
|
||
<!-- 关闭abanded连接时输出错误日志 -->
|
||
<property name="logAbandoned" value="true" />
|
||
<!-- 监控数据库 -->
|
||
<property name="filters" value="mergeStat" />
|
||
</bean>
|
||
|
||
<!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 -->
|
||
<bean id="sqlSessionFactory" class="com.ifish7.mq.utils.MybatisSqlSessionFactoryBean">
|
||
<property name="dataSource" ref="dataSource" />
|
||
<!-- 自动扫描mapping.xml文件 -->
|
||
<property name="mapperLocations" value="classpath:mapper/*/*.xml"></property>
|
||
</bean>
|
||
|
||
<!-- DAO接口所在包名,Spring会自动查找其下的类 -->
|
||
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
|
||
<property name="basePackage" value="com.ifish7.mq.business.*.mapper" />
|
||
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
|
||
</bean>
|
||
|
||
<!-- 这个标记,主要是这里用的是注解事务 -->
|
||
<!-- <tx:annotation-driven transaction-manager="transactionManager" /> -->
|
||
|
||
<!-- (事务管理)transaction manager, use JtaTransactionManager for global tx -->
|
||
<bean id="transactionManager"
|
||
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
|
||
<property name="dataSource" ref="dataSource" />
|
||
</bean>
|
||
|
||
|
||
<!-- 启动对@AspectJ注解的支持 -->
|
||
<!-- <aop:aspectj-autoproxy/> -->
|
||
|
||
<aop:config>
|
||
<!-- 定义切点 -->
|
||
<aop:pointcut id="allServiceMethods" expression="execution(* com.ifish7.mq.business.*.service.impl.*.*(..))"/>
|
||
<!-- 植入切面通知(增强处理) -->
|
||
<aop:advisor advice-ref="txAdvice" pointcut-ref="allServiceMethods"/>
|
||
</aop:config>
|
||
|
||
<tx:advice id="txAdvice" transaction-manager="transactionManager">
|
||
<tx:attributes>
|
||
<tx:method name="find*" read-only="true"/>
|
||
<tx:method name="load*" read-only="true"/>
|
||
<tx:method name="get*" read-only="true"/>
|
||
<tx:method name="list*" read-only="true"/>
|
||
<tx:method name="page*" read-only="true"/>
|
||
<tx:method name="query*" read-only="true"/>
|
||
<tx:method name="add*" propagation="REQUIRED"/>
|
||
<tx:method name="save*" propagation="REQUIRED"/>
|
||
<tx:method name="update*" propagation="REQUIRED"/>
|
||
<tx:method name="remove*" propagation="REQUIRED"/>
|
||
</tx:attributes>
|
||
</tx:advice>
|
||
|
||
</beans> |