log4j.rootLogger=info,FILE,CONSOLE
log4j.addivity.org.apache=true
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.Threshold=info
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=[cWeb] %d{yyyy-MM-dd HH:mm:ss} %-5p %F - %m%n
#log4j.appender.CONSOLE.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD] n%c[CATEGORY]%n%m[MESSAGE]%n%n
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.Threshold=info
log4j.appender.FILE.File=${cweb.root}/logs/cWeb_.log
log4j.appender.FILE.ImmediateFlush=true
log4j.appender.FILE.MaxFileSize=10MB
log4j.appender.FILE.Append=true
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=[cWeb] %d{yyyy-MM-dd HH:mm:ss} %-5p %F - %m%n
# Use this layout for LogFactor 5 analysis
mysql.driver.class.name=com.mysql.jdbc.Driver
mysql.url=jdbc\:mysql\://localhost\:3306/db_cWeb
mysql.user.name=root
mysql.user.password=123456
mysql.initialSize=10
mysql.maxActive=50
mysql.maxIdle=20
mysql.minIdle=5
mysql.maxWait=60000
mysql.testWhileIdle=true
mysql.testOnBorrow=false
mysql.testOnReturn=false
mysql.validationQuery=select 1
mysql.timeBetweebEvictionRunsMillis=20000
mysql.numTestsPerEvictionRun=100
<?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:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">
<context:property-placeholder location="classpath:jdbc.properties" />
<context:component-scan base-package="com.cweb.service" />
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName">
<value>${mysql.driver.class.name}</value>
</property>
<property name="url">
<value>${mysql.url}</value>
</property>
<property name="username">
<value>${mysql.user.name}</value>
</property>
<property name="password">
<value>${mysql.user.password}</value>
</property>
<property name="initialSize">
<value>${mysql.initialSize}</value>
</property>
<property name="maxActive">
<value>${mysql.maxActive}</value>
</property>
<property name="maxIdle">
<value>${mysql.maxIdle}</value>
</property>
<property name="minIdle">
<value>${mysql.minIdle}</value>
</property>
<property name="maxWait">
<value>${mysql.maxWait}</value>
</property>
<property name="testWhileIdle">
<value>${mysql.testWhileIdle}</value>
</property>
<property name="testOnBorrow">
<value>${mysql.testOnBorrow}</value>
</property>
<property name="testOnReturn">
<value>${mysql.testOnReturn}</value>
</property>
<property name="validationQuery">
<value>${mysql.validationQuery}</value>
</property>
<property name="timeBetweenEvictionRunsMillis">
<value>${mysql.timeBetweebEvictionRunsMillis}</value>
</property>
<property name="numTestsPerEvictionRun">
<value>${mysql.numTestsPerEvictionRun}</value>
</property>
</bean>
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean" >
<property name="dataSource" ref="dataSource" />
<!-- <property name="configLocation">
<value>classpath:myabtis_config.xml</value>
</property> -->
<property name="mapperLocations" value="classpath:com/cweb/mapper/*/*.xml"/>
</bean>
<!--
<tx:annotation-driven transaction-manager="transactionManager"/>
-->
<!-- execution 配置 中,不支持用*代替全路径,只能一个一个使用..表示当前路径下的所有文件夹,
然后使用*匹配当前文件夹下所有文件名 -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception" />
</tx:attributes>
</tx:advice>
<!-- com.cweb.service.模块名 -->
<aop:config>
<aop:pointcut id="targetMethod" expression="execution(* com.cweb.service.*..*Service.*(..))" />
<aop:advisor pointcut-ref="targetMethod" advice-ref="txAdvice" />
</aop:config>
<bean id="" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.cweb.mapper"/>
</bean>
</beans>
<?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:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd">
<!-- 通过注解,把URL映射到Controller上,该标签默认注册DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter -->
<mvc:annotation-driven />
<!-- annotation默认的方法映射适配器 mvc:annotation-driven注册后可以省略当前配置
<bean id="handlerMapping" class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />
<bean id="handlerAdapter" class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
-->
<!-- 自动搜索@Controller -->
<context:component-scan base-package="com.cweb.controller" />
<!-- 处理分段上传 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxInMemorySize" value="4096"/>
<property name="maxUploadSize" value="104857600" />
</bean>
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/web/" />
<property name="suffix" value=".jsp" />
</bean>
<!-- 配置静态资源 -->
<!-- <mvc:resources location="/js/" mapping="/js/**"/>
<mvc:resources location="/css/" mapping="/css/**"/>
<mvc:resources location="/images/" mapping="/images/**"/> -->
</beans>
com.cweb.service mapper controller bean
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ taglib uri="http://www.opensymphony.com/sitemesh/decorator" prefix="decorator" %>
<%@ taglib uri="http://www.opensymphony.com/sitemesh/page" prefix="page" %>
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring" %>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="springform" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ include file="taglib.jsp" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
</body>
</html>
<?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"
id="WebApp_ID" version="3.0">
<display-name>cWeb</display-name>
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>cweb.root</param-value>
</context-param>
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:log4j.properties</param-value>
</context-param>
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>60000</param-value>
</context-param>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:spring/springService*.xml</param-value>
</context-param>
<!-- 工程字符编码问题解决 -->
<filter>
<filter-name>characterEncodingFilter</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>characterEncodingFilter</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<!-- 浏览器不支持put delete 等方法,由这个filter转换成标准的Http delete 方法 -->
<filter>
<filter-name>hiddenHttpMethodFilter</filter-name>
<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>hiddenHttpMethodFilter</filter-name>
<servlet-name>springDispatcherServlet</servlet-name>
</filter-mapping>
<!-- spring 入口 只监听web容器启动关闭 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
<!-- spring容器中的Bean需要request,session,globalsession作用域的支持,spring容器本身就必须获得web容器的HTTP请求事件,以HTTP请求的事件"驱动"Bean"作用域的控制逻辑 -->
<listener>
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>
<!-- 防止内存泄露 -->
<listener>
<listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
</listener>
<filter>
<filter-name>sitemesh</filter-name>
<filter-class>com.opensymphony.module.sitemesh.filter.PageFilter</filter-class>
<init-param>
<param-name>debug.pagewriter</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>sitemesh</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- Spring MVC 入口 -->
<servlet>
<servlet-name>springDispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:spring/springMVC.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springDispatcherServlet</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>
<!-- 验证码 -->
<servlet>
<servlet-name>ImageValication</servlet-name>
<servlet-class>com.cweb.system.filter.ImageVolicationServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ImageValication</servlet-name>
<url-pattern>/servlet/imageVolicationServlet</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>15</session-timeout>
</session-config>
<error-page>
<error-code>404</error-code>
<location>/web/common/404.jsp</location>
</error-page>
<error-page>
<error-code>505</error-code>
<location>/web/common/505.jsp</location>
</error-page>
<error-page>
<exception-type>java.lang.NullPointException</exception-type>
<location>/web/common/null.jsp</location>
</error-page>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
<?xml version="1.0" encoding="UTF-8"?>
<sitemesh>
<property name="decorators-file" value="/WEB-INF/decorators.xml" />
<excludes file="${decorators-file}" />
<page-parsers>
<parser default="true" class="com.opensymphony.module.sitemesh.parser.FastPageParser" />
<parser content-type="text/html"
class="com.opensymphony.module.sitemesh.parser.FastPageParser" />
<parser content-type="text/html;charset=utf-8"
class="com.opensymphony.module.sitemesh.parser.FastPageParser" />
</page-parsers>
<decorator-mappers>
<mapper class="com.opensymphony.module.sitemesh.mapper.ParameterDecoratorMapper">
<param name="decorator.parameter" value="decorator" />
<param name="parameter.name" value="confirm" />
<param name="parameter.value" value="true" />
</mapper>
<mapper class="com.opensymphony.module.sitemesh.mapper.ConfigDecoratorMapper">
<param name="config" value="${decorators-file}" />
</mapper>
</decorator-mappers>
</sitemesh>
<?xml version="1.0" encoding="UTF-8"?>
<decorators defaultdir="/web/decorators">
<!-- 此处定义不需要过滤的页面 -->
<excludes>
<pattern></pattern>
</excludes>
<decorator name="main" page="main.jsp">
<pattern>*</pattern>
</decorator>
</decorators>