Spring 3.X 基于Tomcat的Web应用开发配置文件详解

本文是基于Spring 3.2.18 编写的,所有依赖包见下图:

首先是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"
	version="3.0">

    <!-- 应用显示名称 -->
	<display-name>my-web-app</display-name>
	
    <!-- Spring全局参数,目的是指定spring配置文件 -->
	<context-param>  
		<param-name>contextConfigLocation</param-name>  
		<param-value>/WEB-INF/config/spring3/applicationContext.xml</param-value>
	</context-param>  
	
    <!-- 定义spring DispatcherServlet,并将配置文件spring3-mvc.xml注入 -->
	<servlet>
		<servlet-name>spring3</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>  
			<param-name>contextConfigLocation</param-name>  
			<param-value>/WEB-INF/config/spring3/spring3-mvc.xml</param-value>
		</init-param>  
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>spring3</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>

    <!-- 定义spring 监听器 -->
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>

	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
	</welcome-file-list>
	
</web-app>

然后介绍 applicationContext.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:mvc="http://www.springframework.org/schema/mvc"
	xmlns:task="http://www.springframework.org/schema/task" xmlns:context="http://www.springframework.org/schema/context"
	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:p="http://www.springframework.org/schema/p"
	xsi:schemaLocation="http://www.springframework.org/schema/beans  
            http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
            http://www.springframework.org/schema/mvc  
            http://www.springframework.org/schema/mvc/spring-mvc-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/aop  
            http://www.springframework.org/schema/aop/spring-aop-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/task
			http://www.springframework.org/schema/task/spring-task-3.0.xsd ">

	<!--事务注解 -->
	<tx:annotation-driven />

	<!-- task任务扫描注解(定时器注解) -->
	<task:annotation-driven />

	<bean id="multipartResolver"
		class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
	</bean>

	<bean id="propertyConfigurer"
		class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
		<property name="locations">
			<list>
				<value>/WEB-INF/config/spring3/datasource.properties</value>
				<value>/WEB-INF/config/spring3/redis.properties</value>
			</list>
		</property>
	</bean>
	
	<!-- 分解配置 jdbc.properites -->
	<!-- <context:property-placeholder location="classpath:conf/datasource.properties"/> -->

	<!-- 数据源dbcp -->
	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
		destroy-method="close">
		<property name="driverClassName" value="${jdbc.driverClassName}" />
		<property name="url" value="${jdbc.url}" />
		<property name="username" value="${jdbc.username}" />
		<property name="password" value="${jdbc.password}" />
		<property name="initialSize" value="${jdbc.initialSize}" />
		<property name="maxActive" value="${jdbc.maxActive}" />
	</bean>

	<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
		<property name="dataSource" ref="dataSource"></property>
	</bean>
	
	<!-- 事务 -->
	<bean id="transactionManager"
		class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource" />
	</bean>
	
	<!-- <tx:advice id="txAdvice" transaction-manager="transactionManager"> 
		<tx:attributes> <tx:method name="insert*" propagation="REQUIRED" /> <tx:method 
		name="update*" propagation="REQUIRED" /> <tx:method name="delete*" propagation="REQUIRED" 
		/> <tx:method name="find" read-only="true" /> <tx:method name="get" read-only="true" 
		/> <tx:method name="*" propagation="REQUIRED" /> </tx:attributes> </tx:advice> -->

	<!-- redis连接池的配置 -->
	<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
		<property name="maxTotal" value="${redis.pool.maxTotal}" />
		<property name="maxIdle" value="${redis.pool.maxIdle}" />
		<property name="minIdle" value="${redis.pool.minIdle}" />
		<property name="maxWaitMillis" value="${redis.pool.maxWaitMillis}" />
		<property name="testOnBorrow" value="true" />
		<property name="testOnReturn" value="true" />
	</bean>

	<!-- redis的连接池pool,不是必选项:timeout/password -->
	<bean id="jedisPool" class="redis.clients.jedis.JedisPool">
		<constructor-arg index="0" ref="jedisPoolConfig" />
		<constructor-arg index="1" value="${redis.host}" />
		<constructor-arg index="2" value="${redis.port}" type="int" />
		<constructor-arg index="3" value="${redis.timeout}"	type="int" />
		<constructor-arg index="4" value="${redis.password}" />
	</bean>
</beans>

以下是spring3-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:tx="http://www.springframework.org/schema/tx"
	xmlns:p="http://www.springframework.org/schema/p" xmlns:c="http://www.springframework.org/schema/c"
	xmlns:beans="http://www.springframework.org/schema/beans"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:mvc="http://www.springframework.org/schema/mvc"
	xmlns:task="http://www.springframework.org/schema/task" xmlns:cache="http://www.springframework.org/schema/cache"
	xsi:schemaLocation="http://www.springframework.org/schema/mvc 
		http://www.springframework.org/schema/mvc/spring-mvc-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/beans 
		http://www.springframework.org/schema/beans/spring-beans-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/aop 
		http://www.springframework.org/schema/aop/spring-aop-3.0.xsd 
		http://www.springframework.org/schema/mvc
		http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
		http://www.springframework.org/schema/cache 
		http://www.springframework.org/schema/cache/spring-cache.xsd
		http://www.springframework.org/schema/task
		http://www.springframework.org/schema/task/spring-task-3.2.xsd">

	<mvc:annotation-driven />

	<!-- 扫描service、dao组件 -->
	<context:component-scan base-package="com.zkm.spring3.*" />
	<context:component-scan base-package="com.zkm.weixin.*" />

    <mvc:resources mapping="/js/**" location="/js/"/>  
    <mvc:resources mapping="/css/**" location="/css/"/>  
    <mvc:resources mapping="/files/**" location="/files/"/>  
    <mvc:resources mapping="/html/**" location="/html/"/>  
    <mvc:resources mapping="/templates/**" location="/templates/"/>  

    <mvc:default-servlet-handler />  

	<bean id="multipartResolver"
		class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
	</bean>

	<!-- 避免IE在ajax请求时,返回json出现下载 -->
	<bean id="jacksonMessageConverter"
		class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
		<property name="supportedMediaTypes">
			<list>
				<value>text/html;charset=UTF-8</value>
			</list>
		</property>
	</bean>

	<!-- 对模型视图添加前后缀 -->
	<bean
		class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/WEB-INF/views/" />
		<property name="suffix" value=".jsp" />
	</bean>
	<!-- <mvc:interceptors> <bean class="cn.techjc.util.SessionFilter"> <property 
		name="notAuths"> <list> <value>/dlwj/admin/login</value> <value>/dlwj/admin/logout</value> 
		<value>/dlwj/user/menu</value> <value>/dlwj/user/traffic</value> <value>/dlwj/setMenu</value> 
		<value>/dlwj/onAuthResult</value> </list> </property> </bean> </mvc:interceptors> -->
		
	<mvc:interceptors>  
    	<!-- 使用bean定义一个Interceptor,直接定义在mvc:interceptors根下面的Interceptor将拦截所有的请求 -->  
    	<!-- bean class="com.host.app.web.interceptor.AllInterceptor"/>  -->  
    	<mvc:interceptor>  

        	<mvc:mapping path="/ssoDemo/my*" />  
            <mvc:mapping path="/ssoDemo/my/*" />  

        	<!-- 定义在mvc:interceptor下面的表示是对特定的请求才进行拦截的 -->  
        	<bean class="com.zkm.spring3.web.LoginInterceptor"/>  

    	</mvc:interceptor>  
	</mvc:interceptors>  
		
</beans>

datasource.properties :

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/my_db_name?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=UTF-8
jdbc.username=root
jdbc.password=XXXXXX
jdbc.initialSize=20
jdbc.maxActive=100
jdbc.minIdle=5
jdbc.maxIdle=5
jdbc.maxWait=60000

redis.properties :

redis.host=127.0.0.1
redis.port=6379
redis.password=XXXXXX
redis.maxIdle=100
redis.maxActive=300
redis.maxWait=1000
redis.testOnBorrow=true
redis.timeout=100000

redis.pool.maxTotal=200
redis.pool.maxIdle=50
redis.pool.minIdle=10
redis.pool.maxWaitMillis=20000
redis.pool.maxWait=300
redis.uri = redis://password@127.0.0.1:6379/0
redis.timeout=30000

 

转载于:https://my.oschina.net/yxzkm/blog/908050

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值