<?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:p="http://www.springframework.org/schema/p"
	xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:context="http://www.springframework.org/schema/context"
	 xmlns:task="http://www.springframework.org/schema/task"
	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
       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd  
        http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd">
	<!-- 读取db.properties中的属性值 -->
	<bean
		class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
		<property name="location" value="WEB-INF/config/config.properties"></property>
	</bean>

	<!-- 连接MySQL数据库 -->
	<bean id="mySQLDataSource"
		class="org.springframework.jdbc.datasource.DriverManagerDataSource">
		<property name="driverClassName" value="${jdbc.mysql.driver}" />
		<property name="url" value="${jdbc.mysql.url}" />
		<property name="username" value="${jdbc.mysql.username}" />
		<property name="password" value="${jdbc.mysql.password}" />
	</bean>
	<bean id="mySQLSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
	    <property name="configLocation" value="WEB-INF/config/mybatis-applicationConfig.xml" />  
		<property name="dataSource" ref="mySQLDataSource" />
	</bean>
	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<property name="basePackage" value="com.platform.dao,com.dao.mapper" />		
	</bean>
	<!-- 配置声明式事物 事物管理器 -->
	<!-- 配置声明式事物 -->
	<bean id="mySQLTxManager"
		class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="mySQLDataSource" />
	</bean>
	<tx:advice id="txAdvice" transaction-manager="mySQLTxManager">
		<tx:attributes>
			<tx:method name="delete*" propagation="REQUIRED" />
			<tx:method name="insert*" propagation="REQUIRED" />
			<tx:method name="update*" propagation="REQUIRED" />			
			<tx:method name="select*" read-only="true" />
		</tx:attributes>
	</tx:advice>
	<aop:config>
		<aop:pointcut expression="execution(* com.platform.service.*.*(..))"
			id="pointcut" />
		<aop:advisor advice-ref="txAdvice" pointcut-ref="pointcut" />
	</aop:config>

	<!-- 连接oracle数据库 -->
	<!-- <bean id="oracleDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" 
		destroy-method="close"> <property name="driverClassName" value="${jdbc.oracle.driver}" 
		/> <property name="url" value="${jdbc.oracle.url}" /> <property name="username" 
		value="${jdbc.oracle.username}" /> <property name="password" value="${jdbc.oracle.password}" 
		/> <property name="initialSize" value="${jdbc.initialSize}" /> <property 
		name="minIdle" value="${jdbc.minIdle}" /> <property name="maxIdle" value="${jdbc.maxIdle}" 
		/> <property name="maxActive" value="${jdbc.maxActive}" /> <property name="maxWait" 
		value="${jdbc.maxWait}" /> <property name="defaultAutoCommit" value="${jdbc.defaultAutoCommit}" 
		/> <property name="removeAbandoned" value="${jdbc.removeAbandoned}" /> <property 
		name="removeAbandonedTimeout" value="${jdbc.removeAbandonedTimeout}" /> <property 
		name="testWhileIdle" value="${jdbc.testWhileIdle}" /> <property name="timeBetweenEvictionRunsMillis" 
		value="${jdbc.timeBetweenEvictionRunsMillis}" /> <property name="numTestsPerEvictionRun" 
		value="${jdbc.numTestsPerEvictionRun}" /> <property name="minEvictableIdleTimeMillis" 
		value="${jdbc.minEvictableIdleTimeMillis}" /> </bean> -->
	<context:component-scan base-package="com.platform.*">
		<context:exclude-filter type="annotation"
			expression="org.springframework.stereotype.Controller" />
	</context:component-scan>
	<!-- Enables the Spring Task @Scheduled programming model -->  
    <task:executor id="executor" pool-size="5" />  
    <task:scheduler id="scheduler" pool-size="10" />  
    <task:annotation-driven executor="executor" scheduler="scheduler" />  
</beans>      