<?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:context="http://www.springframework.org/schema/context"
|
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-4.3.xsd
|
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
|
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
|
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">
|
<!-- 导入资源文件 -->
|
<context:property-placeholder location="classpath:jdbc.properties" ignore-unresolvable="true" order="1" />
|
|
<!-- 配置数据源 -->
|
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
|
<property name="username" value="${jdbc.username}"></property>
|
<property name="password" value="${jdbc.password}"></property>
|
<property name="driverClassName" value="${jdbc.driver}"></property>
|
<property name="url" value="${jdbc.url}"></property>
|
<!-- 初始化连接大小 -->
|
<property name="initialSize" value="0"></property>
|
<!-- 连接池最大使用连接数量 -->
|
<property name="maxActive" value="20"></property>
|
<!-- 连接池最小空闲 -->
|
<property name="minIdle" value="0" />
|
<!-- 获取连接最大等待时间 -->
|
<property name="maxWait" value="60000" />
|
<!-- mysql的连接校验配置
|
<property name="validationQuery">
|
<value>SELECT 1</value>
|
</property>-->
|
<!-- ORACLE的连接校验配置-->
|
<property name="validationQuery">
|
<value>SELECT 1 FROM DUAL</value>
|
</property>
|
<property name="testOnBorrow" value="false" />
|
<property name="testOnReturn" value="false" />
|
<property name="testWhileIdle" value="true" />
|
<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
|
<property name="timeBetweenEvictionRunsMillis" value="60000" />
|
<!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
|
<property name="minEvictableIdleTimeMillis" value="25200000" />
|
<!-- 打开removeAbandoned功能 -->
|
<property name="removeAbandoned" value="true" />
|
<!-- 1800秒,也就是30分钟 -->
|
<property name="removeAbandonedTimeout" value="1800" />
|
<!-- 关闭abanded连接时输出错误日志 -->
|
<property name="logAbandoned" value="true" />
|
<!-- 监控数据库 -->
|
<!-- <property name="filters" value="stat" /> -->
|
<property name="filters" value="mergeStat" />
|
<!-- 拦截器,用于监控慢SQL等 -->
|
<property name="proxyFilters">
|
<list>
|
<ref bean="stat-filter" />
|
<ref bean="log-filter" />
|
</list>
|
</property>
|
</bean>
|
<!-- 慢SQL记录 -->
|
<bean id="stat-filter" class="com.alibaba.druid.filter.stat.StatFilter">
|
<!-- 慢sql时间设置,即执行时间大于200毫秒的都是慢sql -->
|
<property name="slowSqlMillis" value="200"/>
|
<property name="logSlowSql" value="true"/>
|
</bean>
|
|
<bean id="log-filter" class="com.alibaba.druid.filter.logging.Log4jFilter">
|
<property name="dataSourceLogEnabled" value="true" />
|
<property name="statementExecutableSqlLogEnable" value="true" />
|
</bean>
|
|
<!-- 配置jdbcTemplate属性 -->
|
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
|
<property name="dataSource" ref="dataSource"></property>
|
</bean>
|
<!-- NamedParameterJdbcTemplate的构造函数有2种。1.DataSource;2.JdbcOperations -->
|
<bean id="namedTemplate" class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate" abstract="false" lazy-init="false" autowire="default" >
|
<constructor-arg type="javax.sql.DataSource" ref="dataSource" />
|
<!--constructor-arg type="org.springframework.jdbc.core.JdbcOperations" ref="jdbcTemplate" / -->
|
</bean>
|
<!-- 多数据库处理,设定vendor属性 -->
|
<bean id="vendorProperties"
|
class="org.springframework.beans.factory.config.PropertiesFactoryBean">
|
<property name="properties">
|
<props>
|
<prop key="Oracle">oracle</prop> <!-- 配置数据库关键字,可在mapper的xml中使用 -->
|
<prop key="MySQL">mysql</prop>
|
<prop key="Microsoft SQL Server">sqlServer</prop>
|
<prop key="DB2">db2</prop>
|
<prop key="KingbaseES">kingbasees</prop>
|
<prop key="DM">dameng</prop>
|
<prop key="XuGU">xugu</prop>
|
<prop key="PostgreSQL">postgresql</prop>
|
</props>
|
</property>
|
</bean>
|
<bean id="databaseIdProvider" class="org.apache.ibatis.mapping.VendorDatabaseIdProvider">
|
<property name="properties" ref="vendorProperties" />
|
</bean>
|
|
<!-- 配置MyBatis的SqlSession -->
|
<!-- <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> -->
|
<bean id="sqlSessionFactory"
|
class="com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean">
|
<property name="dataSource" ref="dataSource" />
|
<!-- <property name="mapperLocations" value="classpath:mapper/*.xml"/> -->
|
<property name="mapperLocations" value="classpath:mapper/*.xml" />
|
<!-- 将databseIdProvider绑定到sessionFactory中 -->
|
<property name="databaseIdProvider" ref="databaseIdProvider" />
|
<property name="plugins">
|
<array>
|
<!-- 分页插件配置 -->
|
<bean id="paginationInterceptor"
|
class="com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor" />
|
</array>
|
</property>
|
</bean>
|
|
<!-- mybatis plus 乐观锁插件 -->
|
<bean class="com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor"/>
|
|
<!-- 配置mybatis mapper接口 -->
|
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
|
<!--自动扫描 dao下的interface,并加入IOC容器 -->
|
<property name="basePackage" value="com.ruili.**.dao,com.zbooksoft.**.dao" />
|
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
|
</bean>
|
|
<!-- 开启事务 -->
|
<bean id="transactionManager"
|
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
|
<property name="dataSource" ref="dataSource" />
|
</bean>
|
|
<!-- 可通过注解控制事务 -->
|
<tx:annotation-driven transaction-manager="transactionManager" />
|
</beans>
|