文档章节

springmvc笔记(2)—springmvc的配置文件

lurenjiapp
 lurenjiapp
发布于 2017/07/23 19:04
字数 816
阅读 15
收藏 0

一. web.xml

1. maven默认生成的web.xml需要做一些修改:

改成如下所示:

使用2.4及以上的标准即可默认支持el表达式

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
	http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

2. 在快速构建springmvc项目中(参考上一篇博客)并没有使用到spring的ioc容器,而这在实际开发中基本是不太可能的,为此,我们需要在web.xml中加入对spring的声明

 <!-- Spring应用上下文, 理解层次化的ApplicationContext -->
  <context-param>
 		<param-name>contextConfigLocation</param-name>
		<param-value>/WEB-INF/configs/spring/applicationContext*.xml</param-value>
  </context-param>
  
  <listener>
		<listener-class>
			org.springframework.web.context.ContextLoaderListener
		</listener-class>
  </listener>

3. springmvc上下文的层级

可以有多个DispatcherServlet,通过不同的DispatcherServlet来做不同的分发,可以更好的服务不同类型的请求。

比如以下的业务场景:

因此,<servlet-mapping>的<url-pattern>可以做如下修改以提供响应:

web.xml源文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
	http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  <display-name>Spring MVC Study</display-name>
  <!-- Spring应用上下文, 理解层次化的ApplicationContext -->
  <context-param>
 		<param-name>contextConfigLocation</param-name>
		<param-value>/WEB-INF/configs/spring/applicationContext*.xml</param-value>
  </context-param>
  
  <listener>
		<listener-class>
			org.springframework.web.context.ContextLoaderListener
		</listener-class>
  </listener>
  
  <!-- DispatcherServlet, Spring MVC的核心 -->
  <servlet>
		<servlet-name>mvc-dispatcher</servlet-name>
		<servlet-class> org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<!-- DispatcherServlet对应的上下文配置, 默认为/WEB-INF/$servlet-name$-servlet.xml
		 -->
		<init-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>/WEB-INF/configs/spring/mvc-dispatcher-servlet.xml</param-value>
        </init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>mvc-dispatcher</servlet-name>
	    <!-- mvc-dispatcher拦截所有的请求-->
		<url-pattern>/</url-pattern>
	</servlet-mapping>
</web-app>

 

二. spring-mvc-servlet.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: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.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">

	<!-- 本配置文件是工名为mvc-dispatcher的DispatcherServlet使用, 提供其相关的Spring MVC配置 -->

	<!-- 启用Spring基于annotation的DI, 使用户可以在Spring MVC中使用Spring的强大功能。 激活 @Required 
		@Autowired,JSR 250's @PostConstruct, @PreDestroy and @Resource 等标注 -->
	<context:annotation-config />

	<!-- DispatcherServlet上下文, 只管理@Controller类型的bean, 忽略其他型的bean, 如@Service
		 @Service会交给spring上下文去处理-->
	<context:component-scan base-package="com.imooc.mvcdemo">
		<context:include-filter type="annotation"
			expression="org.springframework.stereotype.Controller" />
	</context:component-scan>

	<!-- HandlerMapping, 无需配置, Spring MVC可以默认启动。 DefaultAnnotationHandlerMapping 
		annotation-driven HandlerMapping -->

	<!-- 扩充了注解驱动,可以将请求参数绑定到控制器参数 -->
	<mvc:annotation-driven />

	<!-- 静态资源处理, css, js, imgs -->
	<mvc:resources mapping="/resources/**" location="/resources/" />


	<!-- 配置ViewResolver。 可以用多个ViewResolver。 使用order属性排序。 
		InternalResourceViewResolver放在最后。 -->
	<bean
		class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
		<property name="order" value="1" />
		<property name="mediaTypes">
			<map>
				<entry key="json" value="application/json" />
				<entry key="xml" value="application/xml" />
				<entry key="htm" value="text/html" />
			</map>
		</property>

		<property name="defaultViews">
			<list>
				<!-- JSON View -->
				<bean
					class="org.springframework.web.servlet.view.json.MappingJackson2JsonView">
				</bean>
			</list>
		</property>
		<property name="ignoreAcceptHeader" value="true" />
	</bean>

	<bean
		class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="viewClass"
			value="org.springframework.web.servlet.view.JstlView" />
		<property name="prefix" value="/WEB-INF/jsps/" />
		<property name="suffix" value=".jsp" />
	</bean>

</beans>

​

 

三. applicationContext.xml

spring上下文文件,为web应用提供bean管理

​
<?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.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">

	<context:annotation-config />
	<!-- 不需要管理@Controller,将其排除-->
	<context:component-scan base-package="com.imooc.mvcdemo">
		<context:exclude-filter type="annotation"
			expression="org.springframework.stereotype.Controller" />
	</context:component-scan>
</beans>

​

 

© 著作权归作者所有

共有 人打赏支持
lurenjiapp
粉丝 2
博文 36
码字总数 31207
作品 0
中山
程序员
私信 提问
Spring学习笔记1——基础知识

1.在java开发领域,Spring相对于EJB来说是一种轻量级的,非侵入性的Java开发框架,曾经有两本很畅销的书《Expert one-on-one J2EE Design and Development》和《Expert one-on-one J2EE deve...

李长春
2011/10/09
0
0
spring boot整合dubbo

github: https://github.com/Athlizo/spring-dubbo-parent 码云: https://git.oschina.net/null5843382/spring-dubbo-parent 相关文档: Spring Dubbo 开发笔记(一)——概述: Spring Dub......

lizo
2017/03/01
0
6
Spring实战读书笔记(1)

Spring的根本使命是? 简化Java开发 为了降低Java开发的复杂性,Spring采取了哪4种关键策略? 1、基于POJO的轻量级和最小侵入性编程 2、通过依赖注入和面向接口实现松耦合 3、基于切面和惯例...

祥林会跟你远走高飞
2014/12/30
0
0
springmvc笔记--配置文件简述

一:spring容器的配置文件 1:父spring容器(服务层service,持久层dao)的spring配置文件在<content-param></content-param>中定义 2:springmvc的DispatcherServlet上下文所用到的bean也需...

那位先生
2014/06/12
0
0
《Spring Recipes》第四章笔记2:Injecting Spring Beans i...

《Spring Recipes》第四章笔记2:Injecting Spring Beans into Scripts 问题 需要将Spring中的bean注入到脚本中。 解决方案 使用Setter注入的方式将bean注入到脚本中。 例:假设接口Interes...

LiJIaming
2012/05/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

springboot2.0 rabbitmq

AmqpTemplate接口没有参数说明,不知道传啥参数,这是很难受,不知道怎么看参数的定义.... 1、先来添加引用包 <dependency> <groupId>org.springframework.boot</groupId> <artifa......

朝如青丝暮成雪
30分钟前
1
0
replace File.separator出现异常:【java.lang.IllegalArgumentException: character to be escaped is missing】

写代码时,要写这么一个功能:将包名中的"."换成路径分隔符("/"或"",视操作系统而定),要求在window或linux下都能正常运行。 分析一下,这明显是个字符串替换的操作,可用使用String提供的...

Funcy1122
31分钟前
1
0
centos7下查找项目路径

1、查出tomcat的端口(如已知端口请忽略,其实用该命令也可以查出tomcat的位置,项目太多,不想找的话,就用下面的步骤吧。) ps -aux | grep tomcat 2、根据端口号查询进程,并获取进程ID ...

You_are_my_music
33分钟前
1
0
微信小程序与原生的App(iOS、Android)的优势对比

小程序也属于App的一种,那么它和我们现在流行的原生App(IOS、Android)相比,有什么区别和优势呢? 一、区别与优势 首先,从技术上来讲,目前App的主流开发方式有三种:Web App 、Native ...

Mr_ET
35分钟前
5
0
第二篇:SpringBoot接口Http协议

1、SpringBoot HTTP请求配置 简介:SpringBoot2.xHTTP请求注解讲解和简化注解配置技巧 1、@RestController and @RequestMapping是springMVC的注解,不是springboot特有的 2、@RestController...

嘴角轻扬30
36分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部