<?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" xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
">

<!-- 引入属性文件 : 请往下翻-->
<context:property-placeholder location="classpath:config.properties" />

<!-- 配置数据源 :使用的 alibaba 的数据库连接 ,要使用先下载 Druid 包 -->
<bean name="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
init-method="init" destroy-method="close">
<property name="url" value="${jdbc_url}" />
<property name="username" value="${jdbc_username}" />
<property name="password" value="${jdbc_password}" />

<!-- 初始化连接大小 -->
<property name="initialSize" value="1" />
<!-- 连接池最大使用连接数量 -->
<property name="maxActive" value="100" />
<!-- 连接池最大空闲 -->
<property name="maxIdle" value="1" />
<!-- 连接池最小空闲 -->
<property name="minIdle" value="10" />
<!-- 获取连接最大等待时间 -->
<property name="maxWait" value="60000" />

<property name="validationQuery" value="${validationQuery}" />
<property name="testOnBorrow" value="false" />
<property name="testOnReturn" value="false" />
<property name="testWhileIdle" value="true" />

<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
<property name="timeBetweenEvictionRunsMillis" value="60000" />
<!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
<property name="minEvictableIdleTimeMillis" value="14400000" />

<!-- 打开removeAbandoned功能 -->
<property name="removeAbandoned" value="true" />
<!-- 600秒,也就是10分钟 -->
<property name="removeAbandonedTimeout" value="600" />
<!-- 关闭abanded连接时输出错误日志 -->
<property name="logAbandoned" value="true" />

<!-- 监控数据库 -->
<!-- <property name="filters" value="stat" /> -->
<property name="filters" value="mergeStat" />
</bean>

<!-- myBatis文件 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<!-- 自动扫描mapping目录, 省掉Configuration.xml里的手工配置 -->
<property name="mapperLocations" value="classpath:x/x/x/x/*.xml" />
</bean>

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="dao层包引用" />
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
</bean>

<!-- 配置事务管理器 -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>

<!-- 拦截器方式配置事物 -->
<tx:advice id="transactionAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="add*" propagation="REQUIRED" />
<tx:method name="append*" propagation="REQUIRED" />
<tx:method name="insert*" propagation="REQUIRED" />
<tx:method name="save*" propagation="REQUIRED" />
<tx:method name="update*" propagation="REQUIRED" />
<tx:method name="modify*" propagation="REQUIRED" />
<tx:method name="edit*" propagation="REQUIRED" />
<tx:method name="delete*" propagation="REQUIRED" />
<tx:method name="remove*" propagation="REQUIRED" />
<tx:method name="repair" propagation="REQUIRED" />
<tx:method name="delAndRepair" propagation="REQUIRED" />

<tx:method name="get*" propagation="SUPPORTS" />
<tx:method name="find*" propagation="SUPPORTS" />
<tx:method name="load*" propagation="SUPPORTS" />
<tx:method name="search*" propagation="SUPPORTS" />
<tx:method name="datagrid*" propagation="SUPPORTS" />

<tx:method name="*" propagation="SUPPORTS" />
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut id="transactionPointcut"
expression="execution(* x.x.x.x.impl..*Impl.*(..))" /><!-- 切入 -->
<aop:advisor pointcut-ref="transactionPointcut"
advice-ref="transactionAdvice" />
</aop:config>

<!-- 配置druid监控spring jdbc -->
<bean id="druid-stat-interceptor"
class="com.alibaba.druid.support.spring.stat.DruidStatInterceptor">
</bean>
<bean id="druid-stat-pointcut" class="org.springframework.aop.support.JdkRegexpMethodPointcut"
scope="prototype">
<property name="patterns">
<list>
<value>x.x.x.x.impl.*</value>
</list>
</property>
</bean>
<aop:config>
<aop:advisor advice-ref="druid-stat-interceptor"
pointcut-ref="druid-stat-pointcut" />
</aop:config>

<!-- 自动扫描(自动注入) -->
<context:component-scan base-package="x.x.x.x.impl" />

</beans>

<!-- 引入的属性文件 注意是文件 .properties的配置文件,自己新建一个-->

driverClassName=com.mysql.jdbc.Driver
validationQuery=SELECT 1

jdbc_url=jdbc:mysql://连接服务器的地址(如:192.168.1.122):3306(端口号)/数据库名?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull
jdbc_username=数据库连接名
jdbc_password=数据库密钥

sessionInfoName=sessionInfo
uploadFieldName=filedata
uploadFileMaxSize=20971520
uploadFileExts=txt,rar,zip,doc,docx,xls,xlsx,jpg,jpeg,gif,png,swf,wmv,avi,wma,mp3,mid
uploadDirectory=attached

最新文章

  1. swift 上手
  2. vector algorithm find
  3. oracle 中的Ipad()函数
  4. iOS 界面调试利器Reveal
  5. KnockOutJS步步深入
  6. oc中的block使用心得
  7. 关于xml的一些知识,DTD,XSD
  8. Unity3D为FirstPersonController添加跑步与下蹲动作
  9. java 复用类的三种方式区别 组合,继承,代理的区别
  10. Win32多线程编程(2) — 线程控制
  11. lightoj 1297(三分)
  12. MVC5的控制器,使用HttpPost方式时,接收的参数为null的原因
  13. 使用Java POI来选择提取Word文档中的表格信息
  14. 201521123015 《Java程序设计》第4周学习总结
  15. thinking in java 随笔
  16. 高淇java300集异常机制作业
  17. github下载项目代码到本地,不能运行 本地改完代码 再上传
  18. LeetCode 929 Unique Email Addresses 解题报告
  19. SWIFT中获取配置文件路径的方法
  20. ABAP-Keyword Documentation

热门文章

  1. Documention
  2. 对dpkg: error processing package xxx (--configure) 的处理
  3. 【HELLO WAKA】WAKA iOS客户端 之二 架构设计与实现篇
  4. CodeForces 696C PLEASE
  5. ckplayer 实现
  6. flex安装debug
  7. HDU 1253 胜利大逃亡(BFS)
  8. ashx入侵
  9. BASE1(matlab)
  10. Just do it!!!