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" xsi:schemaLocation= "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id= "WebApp_ID" version= "3.0"> <!-- 配置Spring配置文件路径 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value> classpath:applicationContext.xml </param-value> </context-param> <!-- 配置Spring上下文监听器 --> <listener> <listener- class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- Spring --> <!-- 配置Spring字符编码过滤器 --> <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> <!-- 配置log4j配置文件路径 --> <context-param> <param-name>log4jConfigLocation</param-name> <param-value>classpath:log4j.properties</param-value> </context-param> <!-- 60s 检测日志配置 文件变化 --> <context-param> <param-name>log4jRefreshInterval</param-name> <param-value>60000</param-value> </context-param> <!-- 配置Log4j监听器 --> <listener> <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> </listener> <!-- Spring MVC 核心控制器 DispatcherServlet 配置 --> <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath*:spring-mvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <!-- 拦截所有/rest/* 的请求,交给DispatcherServlet处理,性能最好 --> <url-pattern>*.do</url-pattern> </servlet-mapping> <!-- 首页 --> <welcome-file-list> <welcome-file>index</welcome-file> </welcome-file-list> </web-app> spring-mvc.xml <?xml version= "1.0" encoding= "UTF-8"?> <beans xmlns= "http://www.springframework.org/schema/beans" xmlns:aop= "http://www.springframework.org/schema/aop" xmlns:context= "http://www.springframework.org/schema/context" xmlns:mvc= "http://www.springframework.org/schema/mvc" xmlns:tx= "http://www.springframework.org/schema/tx" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xmlns:p= "http://www.springframework.org/schema/p" xsi:schemaLocation= "http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"> <!-- 扫描controller(controller层注入) --> <context:component-scan base- package= "com.project"/> <!-- 支持返回json(避免IE在ajax请求时,返回json出现下载 ) --> <bean id= "mappingJacksonHttpMessageConverter" class= "org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"> <property name= "supportedMediaTypes"> <list> <value>text/plain;charset=UTF- 8</value> <value>application/json;charset=UTF- 8</value> </list> </property> </bean> <!-- 支持返回json --> <!-- 启动SpringMVC的注解功能,完成请求和注解POJO的映射 --> <bean class= "org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name= "messageConverters"> <list> <ref bean= "mappingJacksonHttpMessageConverter"/> </list> </property> </bean> <!-- 对模型视图添加前后缀 --> <bean id= "viewResolver" class= "org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix= "/WEB-INF/views/" p:suffix= ".jsp"/> <!-- 配置springMVC处理上传文件的信息 --> <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> applicationContext.xml <?xml version= "1.0" encoding= "UTF-8"?> <beans xmlns= "http://www.springframework.org/schema/beans" xmlns:context= "http://www.springframework.org/schema/context" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xmlns:aop= "http://www.springframework.org/schema/aop" xmlns:tx= "http://www.springframework.org/schema/tx" xmlns:p= "http://www.springframework.org/schema/p" xmlns:util= "http://www.springframework.org/schema/util" xmlns:jdbc= "http://www.springframework.org/schema/jdbc" xmlns:cache= "http://www.springframework.org/schema/cache" xmlns:task= "http://www.springframework.org/schema/task" xsi:schemaLocation= " http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc.xsd http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.0.xsd"> <!-- 自动扫描带有注解的类 纳入spring容器管理 --> <context:component-scan base- package= "com.project"></context:component-scan> <!-- 读取参数配置 --> <bean id= "propertyConfigurer" class= "org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name= "locations"> <list> <value>/WEB-INF/classes/jdbc.properties</value> </list> </property> </bean> <!-- dataSource 配置 --> <bean id= "dataSource" class= "com.alibaba.druid.pool.DruidDataSource" init-method= "init" destroy-method= "close"> <!-- 基本属性 url、user、password --> <property name= "url" value= "${jdbc.url}" /> <property name= "username" value= "${jdbc.username}" /> <property name= "password" value= "${jdbc.password}" /> <!-- 配置初始化大小、最小、最大 --> <property name= "initialSize" value= "${ds.initialSize}" /> <property name= "minIdle" value= "${ds.minIdle}" /> <property name= "maxActive" value= "${ds.maxActive}" /> <!-- 配置获取连接等待超时的时间 --> <property name= "maxWait" value= "${ds.maxWait}" /> <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 --> <property name= "timeBetweenEvictionRunsMillis" value= "${ds.timeBetweenEvictionRunsMillis}" /> <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 --> <property name= "minEvictableIdleTimeMillis" value= "${ds.minEvictableIdleTimeMillis}" /> <property name= "validationQuery" value= "SELECT 'x'" /> <property name= "testWhileIdle" value= "true" /> <property name= "testOnBorrow" value= "false" /> <property name= "testOnReturn" value= "false" /> <!-- 打开PSCache,并且指定每个连接上PSCache的大小 --> <property name= "poolPreparedStatements" value= "false" /> <property name= "maxPoolPreparedStatementPerConnectionSize" value= "20" /> <!-- 配置监控统计拦截的filters --> <property name= "filters" value= "stat" /> </bean> <!-- mybatis文件配置,扫描所有mapper文件 --> <bean id= "sqlSessionFactory" class= "org.mybatis.spring.SqlSessionFactoryBean" p:dataSource-ref= "dataSource" p:configLocation= "classpath:mybatis-config.xml" p:mapperLocations= "classpath:com/project/dao/mapping/*.xml"/> <!-- spring与mybatis整合配置,扫描所有dao --> <bean class= "org.mybatis.spring.mapper.MapperScannerConfigurer" p:basePackage= "com.project.dao" p:sqlSessionFactoryBeanName= "sqlSessionFactory"/> <!-- 对dataSource 数据源进行事务管理 --> <bean id= "transactionManager" class= "org.springframework.jdbc.datasource.DataSourceTransactionManager" p:dataSource-ref= "dataSource"/> <!-- 事务管理 通知 --> <tx:advice id= "txAdvice" transaction-manager= "transactionManager"> <tx:attributes> <!-- 对insert,update,delete 开头的方法进行事务管理,只要有异常就回滚 --> <tx:method name= "insert*" propagation= "REQUIRED" rollback- for= "java.lang.Throwable"/> <tx:method name= "update*" propagation= "REQUIRED" rollback- for= "java.lang.Throwable"/> <tx:method name= "delete*" propagation= "REQUIRED" rollback- for= "java.lang.Throwable"/> <!-- select,count开头的方法,开启只读,提高数据库访问性能 --> <tx:method name= "select*" read-only= "true"/> <tx:method name= "count*" read-only= "true"/> <!-- 对其他方法 使用默认的事务管理 --> <tx:method name= "*"/> </tx:attributes> </tx:advice> <!-- 事务 aop 配置 --> <aop:config> <aop:pointcut id= "serviceMethods" expression= "execution(* com.project.service..*(..))"/> <aop:advisor advice-ref= "txAdvice" pointcut-ref= "serviceMethods"/> </aop:config> <!-- 启用对事务注解的支持 --> <tx:annotation-driven transaction-manager= "transactionManager"/> </beans> mybatis-config.xml <?xml version= "1.0" encoding= "UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <typeAliases> < package name= "com.project.model"/> </typeAliases> </configuration> jdbc.properties ##\u5168\u5C40\u8BBE\u7F6EJDBC Global Setting jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql: //localhost:3306/project?useUnicode=true&characterEncoding=utf-8 jdbc.username=root jdbc.password= #\u914D\u7F6E\u521D\u59CB\u5316\u5927\u5C0F\u3001\u6700\u5C0F\u3001\u6700\u5927 ds.initialSize= 1 ds.minIdle= 1 ds.maxIdle= 1000 ds.maxActive= 20 #\u914D\u7F6E\u83B7\u53D6\u8FDE\u63A5\u7B49\u5F85\u8D85\u65F6\u7684\u65F6\u95F4 ds.maxWait= 60000 #\u914D\u7F6E\u95F4\u9694\u591A\u4E45\u624D\u8FDB\u884C\u4E00\u6B21\u68C0\u6D4B\uFF0C\u68C0\u6D4B\u9700\u8981\u5173\u95ED\u7684\u7A7A\u95F2\u8FDE\u63A5\uFF0C\u5355\u4F4D\u662F\u6BEB\u79D2 ds.timeBetweenEvictionRunsMillis= 60000 #\u914D\u7F6E\u4E00\u4E2A\u8FDE\u63A5\u5728\u6C60\u4E2D\u6700\u5C0F\u751F\u5B58\u7684\u65F6\u95F4\uFF0C\u5355\u4F4D\u662F\u6BEB\u79D2 ds.minEvictableIdleTimeMillis= 300000 log4j.properties # DEBUG,INFO,WARN,ERROR,FATAL LOG_LEVEL=DEBUG log4j.rootLogger=${LOG_LEVEL},CONSOLE,FILE log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.Encoding=UTF- 8 log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout #log4j.appender.CONSOLE.layout.ConversionPattern=[%- 5p] %d{yyyy-MM-dd HH:mm:ss} %C{ 8}@(%F:%L):%m%n log4j.appender.CONSOLE.layout.ConversionPattern=[%- 5p] %d{yyyy-MM-dd HH:mm:ss} %C{ 1}@(%F:%L):%m%n log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender log4j.appender.FILE.File=${catalina.base}/logs/project.log log4j.appender.FILE.Encoding=UTF- 8 log4j.appender.FILE.DatePattern= '.'yyyy-MM-dd log4j.appender.FILE.layout=org.apache.log4j.PatternLayout #log4j.appender.FILE.layout=org.apache.log4j.HTMLLayout log4j.appender.FILE.layout.ConversionPattern=[%- 5p] %d{yyyy-MM-dd HH\:mm\:ss} %C{ 8}@(%F\:%L)\:%m%n pom.xml <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/maven-v4_0_0.xsd"> <modelVersion> 4.0.0</modelVersion> <groupId>com</groupId> <artifactId>project</artifactId> <packaging>war</packaging> <version> 0.0.1-SNAPSHOT</version> <name>project Maven Webapp</name> <url>http: //maven.apache.org</url> <properties> <!-- base setting --> <project.build.sourceEncoding>UTF- 8</project.build.sourceEncoding> <project.build.locales>zh_CN</project.build.locales> <project.build.jdk> 1.7</project.build.jdk> <!-- spring版本号 --> <spring.version> 4.0.2.RELEASE</spring.version> <!-- mybatis版本号 --> <mybatis.version> 3.2.6</mybatis.version> <!-- log4j日志文件管理包版本 --> <slf4j.version> 1.7.7</slf4j.version> <log4j.version> 1.2.17</log4j.version> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version> 4.11</version> <!-- 表示开发的时候引入,发布的时候不会加载此包 --> <scope>test</scope> </dependency> <!-- Spring包 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-oxm</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring.version}</version> </dependency> <!-- mybatis核心包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>${mybatis.version}</version> </dependency> <!-- mybatis/spring包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version> 1.2.2</version> </dependency> <!-- 导入java ee jar 包 --> <dependency> <groupId>javax</groupId> <artifactId>javaee-api</artifactId> <version> 7.0</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version> 1.0.31</version> </dependency> <!-- 导入Mysql数据库链接jar包 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version> 5.1.30</version> </dependency> <!-- 导入dbcp的jar包,用来在applicationContext.xml中配置数据库 --> <dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version> 1.2.2</version> </dependency> <!-- JSTL标签类 --> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version> 1.2</version> </dependency> <!-- 日志文件管理包 --> <!-- log start --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>${log4j.version}</version> </dependency> <!-- 格式化对象,方便输出日志 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version> 1.1.41</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${slf4j.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>${slf4j.version}</version> </dependency> <!-- log end --> <!-- 映入JSON --> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version> 1.9.13</version> </dependency> <!-- 上传组件包 --> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version> 1.3.1</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version> 2.4</version> </dependency> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version> 1.9</version> </dependency> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version> 1.7.3</version> </dependency> </dependencies> <build> <finalName>project</finalName> </build> </project>