1 <?xml version="1.0" encoding="UTF-8"?>
2 <beans xmlns="http://www.springframework.org/schema/beans"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
4 xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
5 xsi:schemaLocation="http://www.springframework.org/schema/beans
6 http://www.springframework.org/schema/beans/spring-beans.xsd
7 http://www.springframework.org/schema/aop
8 http://www.springframework.org/schema/aop/spring-aop.xsd
9 http://www.springframework.org/schema/context
10 http://www.springframework.org/schema/context/spring-context.xsd
11 http://www.springframework.org/schema/tx
12 http://www.springframework.org/schema/tx/spring-tx.xsd">
13
14 <!-- 启用注解 -->
15 <context:annotation-config />
16
17 <!-- 启动组件扫描,排除@Controller组件,该组件由SpringMVC配置文件扫描 -->
//base-package中的属性是controller所在的路径
18 <context:component-scan base-package="cn.ms.smartapp.xdhsop">
19 <context:exclude-filter type="annotation"
20 expression="org.springframework.stereotype.Controller" />
21 </context:component-scan>
22
23 <!-- 事务管理器 -->
24 <bean name="transactionManager"
25 class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
26 <property name="dataSource" ref="dataSource"></property>
27 </bean>
28
29 <bean id="propertyConfigurer"
30 class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
31 <property name="locations">
32 <list>
33 <value>/WEB-INF/classes/dbconfig.properties</value>
34 </list>
35 </property>
36 </bean>
37
38 <!-- 阿里 druid数据库连接池 -->
39 <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
40 destroy-method="close">
41 <!-- 数据库基本信息配置 -->
42 <property name="url" value="${url}" />
43 <property name="username" value="${username}" />
44 <property name="password" value="${password}" />
45 <property name="driverClassName" value="${driverClassName}" />
46 <property name="filters" value="${filters}" />
47 <!-- 最大并发连接数 -->
48 <property name="maxActive" value="${maxActive}" />
49 <!-- 初始化连接数量 -->
50 <property name="initialSize" value="${initialSize}" />
51 <!-- 配置获取连接等待超时的时间 -->
52 <property name="maxWait" value="${maxWait}" />
53 <!-- 最小空闲连接数 -->
54 <property name="minIdle" value="${minIdle}" />
55 <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
56 <property name="timeBetweenEvictionRunsMillis" value="${timeBetweenEvictionRunsMillis}" />
57 <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
58 <property name="minEvictableIdleTimeMillis" value="${minEvictableIdleTimeMillis}" />
59 <property name="validationQuery" value="${validationQuery}" />
60 <property name="testWhileIdle" value="${testWhileIdle}" />
61 <property name="testOnBorrow" value="${testOnBorrow}" />
62 <property name="testOnReturn" value="${testOnReturn}" />
63 <property name="maxOpenPreparedStatements" value="${maxOpenPreparedStatements}" />
64 <!-- 打开removeAbandoned功能 -->
65 <property name="removeAbandoned" value="${removeAbandoned}" />
66 <!-- 1800秒,也就是30分钟 -->
67 <property name="removeAbandonedTimeout" value="${removeAbandonedTimeout}" />
68 <!-- 关闭abanded连接时输出错误日志 -->
69 <property name="logAbandoned" value="${logAbandoned}" />
70 </bean>
71
72 <tx:advice id="txAdvice" transaction-manager="transactionManager">
73 <tx:attributes>
74 <tx:method name="delete*" propagation="REQUIRED" read-only="false"
75 rollback-for="java.lang.Exception" />
76 <tx:method name="insert*" propagation="REQUIRED" read-only="false"
77 rollback-for="java.lang.Exception" />
78 <tx:method name="update*" propagation="REQUIRED" read-only="false"
79 rollback-for="java.lang.Exception" />
80 <tx:method name="save*" propagation="REQUIRED" read-only="false"
81 rollback-for="java.lang.Exception" />
82 </tx:attributes>
83 </tx:advice>
84
85 <aop:aspectj-autoproxy proxy-target-class="true" />
86
87 <!-- 事物处理 -->
88 <aop:config>
89 <aop:pointcut id="pc"
90 expression="execution(* cn.ms.smartapp.xdhsop.service..*(..))" />
91 <aop:advisor pointcut-ref="pc" advice-ref="txAdvice" />
92 </aop:config>
93
94 <!-- 配置mybatis -->
95 <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
96 <property name="dataSource" ref="dataSource" />
97 <property name="configLocation" value="classpath:mybatis/mybatisConfig.xml"></property>
98 <!-- mapper扫描 -->
99 <property name="mapperLocations" value="classpath:mybatis/*/*.xml"></property>
100 </bean>
101
102 <bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
103 <constructor-arg ref="sqlSessionFactory" />
104 </bean>
105 </beans>