当前常用的框架是ssm(spring+spring mvc+mybatis),现将其基本配置整理如下:

1.通过maven导入项目所需要的jar包

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.creditease.cams2.ph</groupId>
  <artifactId>cams2.ph</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  <name>cams2_ph</name>
  <description>档案管理系统(普惠端)</description>
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.6</source>
          <target>1.6</target>
        </configuration>
      </plugin>
    </plugins>
    <!-- 通过maven_install最终生成的war包名称 -->
    <finalName>cams2_ph</finalName>
    <resources>
    	<resource>
    		<directory>src/main/resources</directory>
    	</resource>
    	<resource>
    		<directory>src/main/java</directory>
    		<includes>
    			<include>*.xml</include>
    		</includes>
    	</resource>
    </resources>
  </build>
  
  <properties>
  	<!-- 指定maven通过什么字符集来构建项目 -->
  	<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
  
  <repositories>
  	<!-- 指定maven仓库地址(宜信内服) -->
  	<repository>
  		<id>releases</id>
  		<name>Releases</name>
  		<url>http://10.100.31.71:8080/nexus/content/groups/public</url>
  	</repository>
  </repositories>
  
  <pluginRepositories>
  	<!-- 指定maven插件仓库地址(宜信内服) -->
  	<pluginRepository>
  		<id>releases</id>
  		<name>Releases</name>
  		<url>http://10.100.31.71:8080/nexus/content/groups/public</url>
  	</pluginRepository>
  </pluginRepositories>
  
  <!-- 技术框架spring+struts2+mybatis所依赖的jar包 -->
  <dependencies>
  	<!-- spring依赖 -->
  	<!-- aspects -->
  	<dependency>
    	<groupId>org.springframework</groupId>
    	<artifactId>spring-aspects</artifactId>
    	<version>4.2.5.RELEASE</version>
	</dependency>
	<!-- beans -->
	<dependency>
    	<groupId>org.springframework</groupId>
    	<artifactId>spring-beans</artifactId>
    	<version>4.2.5.RELEASE</version>
	</dependency>
	<!-- aop -->
	<dependency>
    	<groupId>org.springframework</groupId>
    	<artifactId>spring-aop</artifactId>
    	<version>4.2.5.RELEASE</version>
	</dependency>
	<!-- web -->
	<dependency>
    	<groupId>org.springframework</groupId>
    	<artifactId>spring-web</artifactId>
    	<version>4.2.5.RELEASE</version>
	</dependency>
	<!-- webmvc -->
	<dependency>
    	<groupId>org.springframework</groupId>
    	<artifactId>spring-webmvc</artifactId>
    	<version>4.2.5.RELEASE</version>
	</dependency>
	<!-- webmvc-portlet -->
	<dependency>
    	<groupId>org.springframework</groupId>
    	<artifactId>spring-webmvc-portlet</artifactId>
    	<version>4.2.5.RELEASE</version>
	</dependency>
	<!-- core -->
	<dependency>
    	<groupId>org.springframework</groupId>
    	<artifactId>spring-core</artifactId>
    	<version>4.2.5.RELEASE</version>
	</dependency>
	<!-- test -->
	<dependency>
    	<groupId>org.springframework</groupId>
    	<artifactId>spring-test</artifactId>
    	<version>4.2.5.RELEASE</version>
	</dependency>
	<!-- context -->
	<dependency>
    	<groupId>org.springframework</groupId>
    	<artifactId>spring-context</artifactId>
    	<version>4.2.5.RELEASE</version>
	</dependency>
	<!-- jdbc -->
	<dependency>
    	<groupId>org.springframework</groupId>
    	<artifactId>spring-jdbc</artifactId>
    	<version>4.2.5.RELEASE</version>
	</dependency>
	<!-- tx -->
	<dependency>
    	<groupId>org.springframework</groupId>
    	<artifactId>spring-tx</artifactId>
    	<version>4.2.5.RELEASE</version>
	</dependency>
	<!-- context-support -->
	<dependency>
    	<groupId>org.springframework</groupId>
    	<artifactId>spring-context-support</artifactId>
    	<version>4.2.5.RELEASE</version>
	</dependency>
	<!-- expression -->
	<dependency>
    	<groupId>org.springframework</groupId>
    	<artifactId>spring-expression</artifactId>
    	<version>4.2.5.RELEASE</version>
	</dependency>
	<!-- orm -->
	<dependency>
    	<groupId>org.springframework</groupId>
    	<artifactId>spring-orm</artifactId>
    	<version>4.2.5.RELEASE</version>
    </dependency>
	<!-- spring-struts -->
	<dependency>
    	<groupId>org.springframework</groupId>
    	<artifactId>spring-struts</artifactId>
    	<version>3.2.16.RELEASE</version>
	</dependency>
  	<!-- struts2依赖 -->
  	<!-- core -->
  	<dependency>
    	<groupId>org.apache.struts</groupId>
    	<artifactId>struts2-core</artifactId>
    	<version>2.3.28</version>
	</dependency>
	<!-- struts2-spring -->
	<dependency>
    	<groupId>org.apache.struts</groupId>
    	<artifactId>struts2-spring-plugin</artifactId>
    	<version>2.3.28</version>
	</dependency>
	<!-- struts2-json -->
	<dependency>
    	<groupId>org.apache.struts</groupId>
    	<artifactId>struts2-json-plugin</artifactId>
    	<version>2.3.28</version>
	</dependency>
	<!-- struts2-junit -->
	<dependency>
    	<groupId>org.apache.struts</groupId>
    	<artifactId>struts2-junit-plugin</artifactId>
    	<version>2.3.28</version>
	</dependency>
	<!-- struts2-convention -->
	<dependency>
    	<groupId>org.apache.struts</groupId>
    	<artifactId>struts2-convention-plugin</artifactId>
    	<version>2.3.28</version>
	</dependency>
  	<!-- mybatis依赖 -->
  	<!-- mybatis-spring -->
  	<dependency>
    	<groupId>org.mybatis</groupId>
    	<artifactId>mybatis-spring</artifactId>
    	<version>1.2.4</version>
	</dependency>
	<!-- core -->
	<dependency>
    	<groupId>org.mybatis</groupId>
    	<artifactId>mybatis</artifactId>
    	<version>3.3.1</version>
	</dependency>
	<!-- docbook -->
	<dependency>
    	<groupId>org.mybatis</groupId>
    	<artifactId>mybatis-docbook</artifactId>
    	<version>1.0.0</version>
	</dependency>
  	<!-- java依赖 -->
  	<!-- 单元测试依赖(junit) -->
  	<dependency>
    	<groupId>junit</groupId>
    	<artifactId>junit</artifactId>
    	<version>4.12</version>
	</dependency>
  	<!-- 导入导出依赖(poi) -->
  	<!-- core -->
  	<dependency>
    	<groupId>org.apache.poi</groupId>
    	<artifactId>poi</artifactId>
    	<version>3.14</version>
	</dependency>
	<!-- ooxml-schemas -->
	<dependency>
    	<groupId>org.apache.poi</groupId>
    	<artifactId>poi-ooxml-schemas</artifactId>
    	<version>3.14</version>
	</dependency>
	<!-- ooxml -->
	<dependency>
    	<groupId>org.apache.poi</groupId>
    	<artifactId>poi-ooxml</artifactId>
    	<version>3.14</version>
	</dependency>
	<!-- examples -->
	<dependency>
    	<groupId>org.apache.poi</groupId>
    	<artifactId>poi-examples</artifactId>
    	<version>3.14</version>
	</dependency>
	<!-- security -->
	<dependency>
    	<groupId>org.apache.poi</groupId>
    	<artifactId>ooxml-security</artifactId>
    	<version>1.1</version>
	</dependency>
	<!-- schemas -->
	<dependency>
    	<groupId>org.apache.poi</groupId>
    	<artifactId>ooxml-schemas</artifactId>
    	<version>1.3</version>
	</dependency>
  	<!-- 应用服务器依赖(tomcat) -->
  	<!-- jstl -->
	<dependency>
    	<groupId>javax.servlet</groupId>
    	<artifactId>jstl</artifactId>
    	<version>1.2</version>
	</dependency>
	<!-- servlet-api -->
	<dependency>
    	<groupId>javax.servlet</groupId>
    	<artifactId>servlet-api</artifactId>
    	<version>3.0-alpha-1</version>
	</dependency>
  	<!-- 数据库驱动依赖(oracle) -->
  	<!-- ojdbc14 -->
  	<dependency>
    	<groupId>com.oracle</groupId>
    	<artifactId>ojdbc14</artifactId>
    	<version>10.2.0.3.0</version>
	</dependency>
  	<!-- 定时器依赖(quartz) -->
  	<!-- core -->
  	<dependency>
    	<groupId>org.opensymphony.quartz</groupId>
    	<artifactId>quartz</artifactId>
    	<version>1.6.1</version>
	</dependency>
	<!-- quartz-oracle -->
	<dependency>
    	<groupId>org.opensymphony.quartz</groupId>
    	<artifactId>quartz-oracle</artifactId>
    	<version>1.6.1</version>
	</dependency>
  	<!-- 条形码依赖(jbarcode) -->
  	<dependency>
		<groupId>com.jbarcode</groupId>
		<artifactId>jbarcode</artifactId>
		<version>0.2.8</version>
	</dependency>
  	<!-- 宜信系统对接接口依赖(sia) -->
  	<dependency>
		<groupId>com.creditease.sia</groupId>
		<artifactId>sia-client</artifactId>
		<version>3.1.13</version>
	</dependency>
	<dependency>
		<groupId>org.mongodb</groupId>
		<artifactId>mongo-java-driver</artifactId>
		<version>2.5.3</version>
	</dependency>
	<dependency>
		<groupId>org.rabbitmq.client</groupId>
		<artifactId>rabbitmq-client</artifactId>
		<version>3.3.3</version>
	</dependency>
  	<!-- 日志管理依赖(log4j) -->
  	<dependency>
    	<groupId>log4j</groupId>
    	<artifactId>log4j</artifactId>
    	<version>1.2.17</version>
	</dependency>
  	<!-- 解析json格式数据依赖(fastjson) -->
  	<dependency>
    	<groupId>com.alibaba</groupId>
    	<artifactId>fastjson</artifactId>
    	<version>1.2.8</version>
	</dependency>
  	<!-- 解析xml格式文件依赖(dom4j) -->
  	<!-- core -->
  	<dependency>
    	<groupId>dom4j</groupId>
    	<artifactId>dom4j-core</artifactId>
    	<version>1.4-dev-8</version>
	</dependency>
	<!-- dom4j -->
	<dependency>
    	<groupId>dom4j</groupId>
    	<artifactId>dom4j</artifactId>
    	<version>1.4-dev-8</version>
	</dependency>
	<!-- 数据源依赖 -->
	<!-- dbcp -->
	<dependency>
    	<groupId>commons-dbcp</groupId>
    	<artifactId>commons-dbcp</artifactId>
    	<version>20030825.184428</version>
	</dependency>
	<!-- c3p0 -->
	<!-- core -->
	<dependency>
    	<groupId>c3p0</groupId>
    	<artifactId>c3p0</artifactId>
    	<version>0.9.1.2</version>
	</dependency>
	<!-- c3p0-oracle -->
	<dependency>
    	<groupId>c3p0</groupId>
    	<artifactId>c3p0-oracle-thin-extras</artifactId>
    	<version>0.9.0.2</version>
	</dependency>
	<!-- tomcat依赖 -->
	<!-- tomcat-dbcp -->
	<dependency>
    	<groupId>org.apache.tomcat</groupId>
    	<artifactId>tomcat-dbcp</artifactId>
    	<version>9.0.0.M4</version>
	</dependency>
	<!-- tomcat-util -->
	<dependency>
    	<groupId>org.apache.tomcat</groupId>
    	<artifactId>tomcat-util</artifactId>
    	<version>9.0.0.M4</version>
	</dependency>
	<!-- tomcat-servlet-api -->
	<dependency>
    	<groupId>org.apache.tomcat</groupId>
    	<artifactId>tomcat-servlet-api</artifactId>
    	<version>9.0.0.M4</version>
	</dependency>
	<!-- tomcat-jsp-api -->
	<dependency>
    	<groupId>org.apache.tomcat</groupId>
    	<artifactId>tomcat-jsp-api</artifactId>
    	<version>9.0.0.M4</version>
	</dependency>
	<!-- tomcat-jdbc -->
	<dependency>
    	<groupId>org.apache.tomcat</groupId>
    	<artifactId>tomcat-jdbc</artifactId>
    	<version>9.0.0.M4</version>
	</dependency>
	<!-- alibaba_druid数据源依赖 -->
	<dependency>
    	<groupId>com.alibaba</groupId>
    	<artifactId>druid</artifactId>
    	<version>1.0.18</version>
	</dependency>
	<!-- 配置数据源连接池属性时依赖 -->
	<dependency>
    	<groupId>commons-pool</groupId>
    	<artifactId>commons-pool</artifactId>
    	<version>1.6</version>
	</dependency>
	<!-- javaMail邮件操作依赖 -->
	<dependency>
    	<groupId>javax.mail</groupId>
    	<artifactId>mail</artifactId>
    	<version>1.5.0-b01</version>
	</dependency>
  </dependencies>
</project>



2.配置jdbc.properties

#orcle
driver=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@(DESCRIPTION = (jdbcFAILOVER = yes)(ADDRESS = (PROTOCOL = TCP)(HOST = 10.100.20.14)(PORT = 1521))(ADDRESS = (PROTOCOL = TCP)(HOST = 10.100.20.12)(PORT = 1521)) (CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = cedb)))
username=cams2
password=cKse*)^(23
initialSize=10
maxActive=100
maxIdle=30
minIdle=10
maxWait=60000 
removeAbandoned=true
removeAbandonedTimeout=120
logAbandoned=true 
validationQuery=select 1 from dual
testOnBorrow=true
testOnReturn=true
defaultAutoCommit=false
timeBetweenEvictionRunsMillis=180000
minEvictableIdleTimeMillis=180000

#mysql
#driver=com.mysql.jdbc.Driver
#url=jdbc:mysql://localhost:3306/action
#username=cams2
#password=cKse*)^(23



3.配置log4j.properties

#rootLogger
log4j.rootLogger=DEBUG,CONSOLE,CAMS2_PH_DEBUG,CAMS2_PH_ERROR

#CONSOLE-log
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=CAMS_PH --> %d{yyyy-MM-dd HH:mm:ss} --> [%p] METHODLOCATION-->[%l] MESSAGES-->[%m%n]

#CAMS2_PH_DEBUG-log
log4j.appender.CAMS2_PH_DEBUG=org.apache.log4j.DailyRollingFileAppender
log4j.appender.CAMS2_PH_DEBUG.DatePattern='.'yyyy-MM-dd'.log'
log4j.appender.CAMS2_PH_DEBUG.File=CAMS2_PH_DEBUG.log
log4j.appender.CAMS2_PH_DEBUG.Threshold = DEBUG 
log4j.appender.CAMS2_PH_DEBUG.layout=org.apache.log4j.PatternLayout
log4j.appender.CAMS2_PH_DEBUG.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} --> [%p] METHODLOCATION-->[%l] MESSAGES-->[%m%n]

#CAMS2_PH_ERROR-log
log4j.appender.CAMS2_PH_ERROR=org.apache.log4j.DailyRollingFileAppender
log4j.appender.CAMS2_PH_ERROR.DatePattern='.'yyyy-MM-dd'.log'
log4j.appender.CAMS2_PH_ERROR.File=CAMS2_PH_ERROR.log
log4j.appender.CAMS2_PH_ERROR.Threshold = ERROR 
log4j.appender.CAMS2_PH_ERROR.layout=org.apache.log4j.PatternLayout
log4j.appender.CAMS2_PH_ERROR.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} --> [%p] METHODLOCATION-->[%l] MESSAGES-->[%m%n]

#mybatis-sql-log
log4j.logger.com.ibatis=DEBUG
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG
log4j.logger.com.creditease.cams2.ph.mapper=TRACE



4.配置spring-mybatis.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:p="http://www.springframework.org/schema/p"  
    xmlns:aop="http://www.springframework.org/schema/aop"   
    xmlns:context="http://www.springframework.org/schema/context"  
    xmlns:jee="http://www.springframework.org/schema/jee"  
    xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:cache="http://www.springframework.org/schema/cache"
    xmlns:util="http://www.springframework.org/schema/util"
    xmlns:mvc="http://www.springframework.org/schema/mvc"  
    xsi:schemaLocation="    
		http://www.springframework.org/schema/aop 
		http://www.springframework.org/schema/aop/spring-aop-4.0.xsd  
        http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans-4.0.xsd  
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context-4.0.xsd  
        http://www.springframework.org/schema/jee 
        http://www.springframework.org/schema/jee/spring-jee-4.0.xsd  
        http://www.springframework.org/schema/tx 
        http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
        http://www.springframework.org/schema/cache
        http://www.springframework.org/schema/cache/spring-cache-4.0.xsd
        http://www.springframework.org/schema/util 
        http://www.springframework.org/schema/util/spring-util-4.0.xsd
   		http://www.springframework.org/schema/mvc   
        http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"> 

	<!-- 启动注解,添加注解支持 -->
	<context:annotation-config/>
	<!-- 自动扫描web包 ,将带有注解的类纳入spring容器管理 -->  
    <context:component-scan base-package="com.creditease.cams2.ph"></context:component-scan> 
    
    <!-- 引入jdbc配置文件 -->  
    <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">  
        <property name="locations">  
            <list>  
                <value>classpath*:/db.properties</value>  
                <value>classpath*:/config.properties</value>  
            </list>  
        </property>  
    </bean>  
    
    <!--配置数据源(方式二_通过JNDI获得数据源的引用)		
	<bean id="dataSource2" class="org.springframework.jndi.JndiObjectFactoryBean">
		<property name="jndiName" value="java:comp/env/jdbc/cams2_ph"/> 
	</bean>
	 -->
	 
	<!--配置数据源(方式三),使用C3P0数据源实现 -->
 	<bean id="dataSource3" destroy-method="close" class="com.mchange.v2.c3p0.ComboPooledDataSource">
  		<!-- 指定连接数据库的驱动 -->
  		<!-- 指定连接数据库的URL -->
  		<!-- 指定连接数据库的用户名 -->
  		<!-- 指定连接数据库的密码 -->
  		<!-- 指定连接数据库连接池的最大连接数 -->
  		<!-- 指定连接数据库连接池的最小连接数 -->
  		<!-- 指定连接数据库连接池的初始化连接数 -->
  		<!-- 指定连接数据库连接池的连接的最大空闲时间 -->
  		<!-- 连mysql 
  		<property name="driverClass" value="com.mysql.jdbc.Driver"/>
  		<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/auction"/>
  		<property name="user" value="root"/>
  		<property name="password" value="32147"/>
  		<property name="maxPoolSize" value="40"/>
  		<property name="minPoolSize" value="1"/>
  		<property name="initialPoolSize" value="1"/>
  		<property name="maxIdleTime" value="20"/>
  		-->
  
  		<!--连MS-SQL
  		<property name="driverClassName" value="net.sourceforge.jtds.jdbc.Driver"></property> 
  		<property name="url" value="jdbc:jtds:sqlserver://10.11.68.28:1433;DatabaseName=txDB"></property>
  		<property name="username" value="sa"></property> 
  		<property name="password" value="Wang.Jun2009"></property>
 		--> 
 
  		<!-- 连 Oracle
  		<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"></property>
  		<property name="url" value="jdbc:oracle:thin:@10.12.3.106:1521:orcl"></property>
  		<property name="username" value="pms"></property>
  		<property name="password" value="zerobugpms"></property>
  		<property name="maxActive" value="100"></property>
  		<property name="maxIdle" value="30"></property>
  		<property name="maxWait" value="500"></property>
  		<property name="defaultAutoCommit" value="true"></property>
  		-->
 	</bean>
 
 	<!-- 配置数据源(方式四),使用dbcp数据源实现  -->
 	<bean id="dataSource4" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">              
 		<!--  连接池启动时的初始值 
		<property name="initialSize" value="${initialSize}" />-->
		<!--  连接池的最大值 
		<property name="maxActive" value="${maxActive}" /> -->
		<!--  最大空闲值.当经过一个高峰时间后,连接池可以慢慢将已经用不到的连接慢慢释放一部分,一直减少到maxIdle为止
		<property name="maxIdle" value="${maxIdle}" /> -->
		<!--  最小空闲值.当空闲的连接数少于阀值时,连接池就会预申请去一些连接,以免洪峰来时来不及申请 
		<property name="minIdle" value="${minIdle}" />-->
		<!-- 超时等待时间以毫秒为单位 6000毫秒/1000等于60秒 
		<property name="maxWait" value="${maxWait}" />-->
		<!-- 是否自动回收超时连接 
		<property name="removeAbandoned" value="${removeAbandoned}" />-->
		<!-- 超时时间(以秒数为单位) 
		<property name="removeAbandonedTimeout" value="${removeAbandonedTimeout}" />-->
		<!-- 连接被泄露时是否打印
		<property name="logAbandoned" value="${logAbandoned}" /> -->
		<!-- 用来验证从连接池取出的连接 
		<property name="validationQuery" value="${validationQuery}" />-->
		<!-- 指明是否在从池中取出连接前进行检验
		<property name="testOnBorrow" value="${testOnBorrow}" /> -->
		<!-- 指明是否在归还到池中前进行检验
		<property name="testOnReturn" value="${testOnReturn}" /> -->        
 	</bean>  
 
	<!-- 配置数据源(方式五),使用springjdbc数据源实现  
 	<bean id="dataSource5" class="org.springframework.jdbc.datasource.DriverManagerDataSource"
		p:driverClassName="${DBDriver}" 
		p:url="${DBUrl}"
		p:username="${userName}" 
		p:password="${password}" /> 
 	-->
 	
    <!-- dataSource 配置方式一 -->  
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close">  
        <!-- 基本属性 url、user、password -->  
        <property name="url" value="${url}" />  
        <property name="username" value="${username}" />  
        <property name="password" value="${password}" />  
  		<property name="driverClassName" value="${driver}"/>
        <!-- 配置初始化大小、最小、最大 -->  
        <property name="initialSize" value="${initialSize}" />  
        <property name="minIdle" value="${minIdle}" />  
        <property name="maxIdle" value="${maxIdle}" />  
        <property name="maxActive" value="${maxActive}" />  
        <!-- 配置获取连接等待超时的时间 -->  
        <property name="maxWait" value="${maxWait}" />  
        <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->  
        <property name="timeBetweenEvictionRunsMillis" value="${timeBetweenEvictionRunsMillis}" />  
        <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->  
        <property name="minEvictableIdleTimeMillis" value="${minEvictableIdleTimeMillis}" /> 
        <!--  
        <property name="testWhileIdle" value="${testWhileIdle}" /> --> 
        <!-- 是否自动回收超时连接 -->
		<property name="removeAbandoned" value="${removeAbandoned}" />
		<!-- 超时时间(以秒数为单位) -->
		<property name="removeAbandonedTimeout" value="${removeAbandonedTimeout}" />
		<!-- 连接被泄露时是否打印 -->
		<property name="logAbandoned" value="${logAbandoned}" />
		<!-- 用来验证从连接池取出的连接 -->
		<property name="validationQuery" value="${validationQuery}" />
		<!-- 指明是否在从池中取出连接前进行检验 -->
		<property name="testOnBorrow" value="${testOnBorrow}" />
		<!-- 指明是否在归还到池中前进行检验 -->
		<property name="testOnReturn" value="${testOnReturn}" />
    </bean>  
    
    <!-- 配置mybatis分页通用类 -->
	<bean id="paginationInterceptor" class="com.creditease.cams2.ph.util.intercepter.PageInterceptor"></bean> 
    
    <!-- mybatis文件配置,扫描所有mapper文件 -->  
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> 
    	<property name="dataSource" ref="dataSource" />
    	<property name="mapperLocations" value="classpath:com/creditease/cams2/ph/mapper/*.xml"></property>
		<property name="typeAliasesPackage" value="com.creditease.cams2.ph.model" />
		<property name="plugins">  
            <ref bean="paginationInterceptor"/>  
        </property>
    </bean>
    	
    <!-- spring与mybatis整合配置,扫描所有mapper -->  
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    	<property name="basePackage" value="com.creditease.cams2.ph.mapper" />
		<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
    </bean> 
  
    <!-- 对dataSource 数据源进行事务管理 -->  
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager" >
    	<property name="dataSource" ref="dataSource" />
    </bean>
  
    <!-- 启用对事务注解的支持
    <tx:annotation-driven transaction-manager="transactionManager" />  
  	-->
  	<!-- 声明方式配置事物 -->
	<!-- 配置事务传播特性 -->
	<tx:advice id="transactionAdvice" transaction-manager="transactionManager">
		<tx:attributes>
			<tx:method name="*" propagation="REQUIRED" read-only="false" />
		</tx:attributes>
	</tx:advice>
	<!-- 配置参与事务的类 -->
	<aop:config>
		<aop:pointcut id="transactionPointcut" expression="execution(* com.creditease.cams2.ph.service.*.*(..))" />
		<aop:advisor pointcut-ref="transactionPointcut" advice-ref="transactionAdvice" />
	</aop:config>
	
	<!-- 定义JavaMailSenderImpl,它用于发送邮件 -->
 	<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
  		<!-- 指定发送邮件的SMTP服务器地址 -->
  		<property name="host" value="smtp.163.com"/>
  		<property name="javaMailProperties">
   			<props>
    			<prop key="mail.smtp.auth">true</prop>
    			<prop key="mail.smtp.timeout">25000</prop>
   			</props>
  		</property>
  		<!-- 指定登录邮箱的用户名、密码 -->
  		<property name="username" value="spring_test"/>
  		<property name="password" value="123abc"/>
 	</bean>
 	<!-- 定义SimpleMailMessage Bean,它代表了一份邮件 -->
 	<bean id="mailMessage" class="org.springframework.mail.SimpleMailMessage">
  		<property name="from" value="spring_test@163.com"/>
  		<!-- 指定邮件标题 -->
  		<property name="subject" value="****"/>
 	</bean>
</beans>



5.配置spring-mvc.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:p="http://www.springframework.org/schema/p"  
    xmlns:aop="http://www.springframework.org/schema/aop"   
    xmlns:context="http://www.springframework.org/schema/context"  
    xmlns:jee="http://www.springframework.org/schema/jee"  
    xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:cache="http://www.springframework.org/schema/cache"
    xmlns:util="http://www.springframework.org/schema/util"
    xmlns:mvc="http://www.springframework.org/schema/mvc"  
    xsi:schemaLocation="    
		http://www.springframework.org/schema/aop 
		http://www.springframework.org/schema/aop/spring-aop-4.0.xsd  
        http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans-4.0.xsd  
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context-4.0.xsd  
        http://www.springframework.org/schema/jee 
        http://www.springframework.org/schema/jee/spring-jee-4.0.xsd  
        http://www.springframework.org/schema/tx 
        http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
        http://www.springframework.org/schema/cache
        http://www.springframework.org/schema/cache/spring-cache-4.0.xsd
        http://www.springframework.org/schema/util 
        http://www.springframework.org/schema/util/spring-util-4.0.xsd
   		http://www.springframework.org/schema/mvc   
        http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"> 
        
    <!-- 启用springmvc注解 -->
    <context:annotation-config />
    
    <mvc:annotation-driven >
    	<!-- 消息转换器(解决responsebody 中文乱码) -->
    	<mvc:message-converters register-defaults="true">
      		<bean class="org.springframework.http.converter.StringHttpMessageConverter">
        		<property name="supportedMediaTypes" value="text/html;charset=UTF-8"/>
      		</bean>
    	</mvc:message-converters>
  	</mvc:annotation-driven>

    <!-- 设置使用注解的类所在的类包,加载包中的controller  注解扫描包 -->
    <context:component-scan base-package="com.creditease.cams2.ph.controller"></context:component-scan>

    <!-- 完成请求和注解POJO的映射 (功能等同于<context:annotation-config />)
    <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>
    <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/>  
	-->

    <!-- 视图分解器 -->  
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
        <property name="prefix" value="/jsp/"/>  
        <property name="suffix" value=".jsp"/>  
    </bean> 
    
    <!-- 上传文件的解析器 -->  
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">  
        <property name="defaultEncoding" value="UTF-8"/>  
        <property name="maxUploadSize" value="10485760000"/>  
        <property name="maxInMemorySize" value="40960"/>  
    </bean>
     
</beans>



6.配置web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
	version="3.0">
	<!-- 项目名称 -->
	<display-name>cams_ph</display-name>
	<!-- 项目描述 -->
	<description>档案管理系统二期普惠端</description>
	
	<!-- 启用监听器,添加对spring框架的支持 -->
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	<!-- 指定监听器监听地址 -->
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<!-- 如果没有写value值,则默认加载applicationContext.xml文件 -->
		<param-value>classpath*:applicationContext.xml</param-value>
	</context-param>
	
	<!-- 启用拦截器,添加对struts2的支持 
	<filter>
		<filter-name>struts2</filter-name>
		<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
	</filter>
	-->
	<!-- 指定对哪些文件进行拦截 
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	-->
	<!-- 通过servlet映射添加对springmvc框架的支持 -->
	<servlet>
		<servlet-name>springmvc</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
		<!-- 可以自定义servlet.xml配置文件的位置和名称,默认为WEB-INF目录下,名称为[<servlet-name>]-servlet.xml,如springmvc-servlet.xml -->
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath*:springmvc-servlet.xml</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>springmvc</servlet-name>
		<url-pattern>*.do</url-pattern>
	</servlet-mapping>
	
	<!-- filter(过滤字符编码,以防中文乱码等问题) -->
	<filter>
		<filter-name>encodingFilter</filter-name>
		<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>	
		<!-- 项目启动时启动此过滤器(初始化参数) -->
		<init-param>
			<param-name>encoding</param-name>
			<param-value>UTF-8</param-value>
		</init-param>
		<init-param>
			<param-name>forceEncoding</param-name>
			<param-value>true</param-value>
		</init-param>
	</filter>
	<!-- 指定对哪些文件进行拦截 -->
	<filter-mapping>
		<filter-name>encodingFilter</filter-name>
		<!-- 对所有请求进行拦截 -->
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	
	<!-- filter(用于拦截不能通过浏览器地址栏访问系统其它资源) 
	<filter>
		<filter-name>loginFilter</filter-name>
		<filter-class>com.creditease.cams2.ph.util.filter.LoginFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>loginFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	-->
	<!-- listener(监听session的生命周期),确保单点登录 
	<listener>
		<listener-class>com.creditease.cams2.ph.util.listener.SessionLifecycleListener</listener-class>
	</listener>
	-->
	<!-- servlet(quartz定时处理,随着项目的启动而启动) -->
	<servlet>
		<servlet-name>QuartzServlet</servlet-name>
		<servlet-class>com.creditease.cams2.ph.util.servlet.QuartzServlet</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>
	
	<!-- 项目启动首页(欢迎页),此处指登录页 -->
	<welcome-file-list>
		<welcome-file>jsp/systemManage/loginManage/loginManage.jsp</welcome-file>
	</welcome-file-list>
	
	<!-- session过期时间,1=1min -->
	<session-config>
		<session-timeout>20</session-timeout>
	</session-config>
	
	<!-- 请求返回错误和异常的跳转错误页 -->
	<error-page>
		<!-- 禁止访问 -->
		<error-code>403</error-code>
		<location>/jsp/systemManage/exceptionManage/exceptionManage.jsp</location>
	</error-page>
	<error-page>
		<!-- 请求的资源不存在 -->
		<error-code>404</error-code>
		<location>/jsp/systemManage/exceptionManage/exceptionManage.jsp</location>
	</error-page>
	<error-page>
		<!-- 服务器错误返回 -->
		<error-code>500</error-code>
		<location>/jsp/systemManage/exceptionManage/exceptionManage.jsp</location>
	</error-page>
	<error-page>
		<!-- 请求返回异常 -->
		<exception-type>java.lang.Exception</exception-type>
		<location>/jsp/systemManage/exceptionManage/exceptionManage.jsp</location>
	</error-page>
	
	<!-- 配置数据库连接池(jndi方式) -->
	<resource-ref>   
    	<description>JNDI JDBC DataSource</description>   
    	<res-ref-name>jdbc/cams2_ph</res-ref-name>   
    	<res-type>javax.sql.DataSource</res-type>   
    	<res-auth>Container</res-auth>   
	</resource-ref>
</web-app>