1.ContextLoaderListener

对于使用Spring的Web应用,无需手动创建Spring容器,而是通过配置文件声明式地创建Spring容器。可以直接在web.xml文件中配置创建Spring容器。

Spring提供了一个ContextLoaderListener,该监听器类实现了ServletContextListener接口,它会在创建时自动查找WEB-INF/下的applicationContext.xml文件。因此,如果只有一个配置文件,且文件名为applicationContext.xml,则只需在web.xml文件中增加如下配置片段即可。

<listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

如果有多个配置文件需要载入,则考虑使用<context-param…/>元素来确定配置文件的文件名。

ContextLoaderListener加载时会查找名为contextConfigLocation的初始化参数,如下:

<!--指定多个配置文件-->
<context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/spring-context.xml,/WEB-INF/applicationContext.xml</param-value>
</context-param>
<!--使用ContextLoaderListener初始化Spring容器-->
<listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

如果没有使用contextConfigLocation指定配置文件,则Spring会自动查找WEB-INF/下的applicationContext.xml文件。

如果有contextConfigLocation,则使用该参数确定的配置文件。

如果无法找到合适的配置文件,Spring将无法正常初始化。

2.可能遇到的异常

在配置Spring MVC时,可能会遇到这样的错误:

org.springframework.orm.hibernate4.SpringSessionContext.currentSession(SpringSessioorg.hibernate.HibernateException: Could not obtain transaction-synchronized Session for current threadnContext.java:134)

那么在web.xml文件中添加如下配置即可:

<filter><filter-name>openSessionInViewFilter</filter-name><filter-class>org.springframework.orm.hibernate4.support.OpenSessionInViewFilter</filter-class>
</filter>
<filter-mapping><filter-name>openSessionInViewFilter</filter-name><url-pattern>/*</url-pattern>
</filter-mapping>

OpenSessionInViewFilter的主要功能是用来把一个Hibernate Session和一次完整的请求过程对应的线程相绑定。

Open Session In View在request把session绑定到当前thread期间一直保持hibernate session在open状态,使session在request的整个期间都可以使用。当View 层逻辑完成后,才会通过Filter的doFilter方法或Interceptor的postHandle方法自动关闭session。

转载于:https://www.cnblogs.com/weilunhui/p/5230037.html

Spring Web MVC 随笔相关推荐

  1. Spring Web MVC(一)

    概述 Spring Web MVC框架的特点 五大核心组件 编程步骤 五大核心组件 DispatcherServlet前端控制器 WebApplicationContext中特殊的bean 处理过程 ...

  2. 【Spring Web MVC】Spring Web MVC 注解开发环境搭建

    为什么80%的码农都做不了架构师?>>>    1.创建maven项目 创建一个名为:springwebmvc-first的maven项目 2.添加依赖包 要使用springWebM ...

  3. Spring.Web.Mvc 注入(控制器属性注入)

    1.web.config配置 <?xml version="1.0" encoding="utf-8"?> <!-- 有关如何配置 ASP.N ...

  4. Spring Web MVC是什么

    2.1.Spring Web MVC是什么 Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职 ...

  5. 初试 spring web mvc

    作为一名code需要了解更多的知识,编程方面的东西太多了,是个逐渐积累的过程.最近学习一下spring web mvc,写下我个人的一些经验. 1.准备jar包.spring mvc 已经到了版本4, ...

  6. Spring Boot——2分钟构建spring web mvc REST风格HelloWorld

    Spring Boot--2分钟构建spring web mvc REST风格HelloWorld 之前有一篇<5分钟构建spring web mvc REST风格HelloWorld>介 ...

  7. Spring Web MVC (Spring MVC) 的相关例题及解析

    MVC.web MVC.Spring MVC 和 Spring Web MVC的联系与区别: 1.MVC 是一种架构分层模式 2.web MVC 是指在 web 领域下实践的 MVC,因为 web 领 ...

  8. Spring Web MVC详解

    Spring Web MVC详解 原创 2016年03月23日 10:55:57 标签: 421 编辑 删除 2.1.Spring Web MVC是什么 Spring Web MVC是一种基于Java ...

  9. Spring系列(六) Spring Web MVC 应用构建分析

    DispatcherServlet DispatcherServlet 是Spring MVC的前端控制器名称, 用户的请求到达这里进行集中处理, 在Spring MVC中, 它的作用是为不同请求匹配 ...

最新文章

  1. rtsp流+vue进行视频播放(海康威视、大华摄像头)
  2. 聚类分析和主成分分析
  3. python操作三大主流数据库(6)python操作mysql⑥新闻管理后台功能的完善(增、ajax异步删除新闻、改、查)...
  4. html tfoot标签,HTML tfoot 标签
  5. 9.Python基础 面向对象的进一步拓展
  6. Nacos源码服务发现
  7. 物联网卡加持智能电网,发展更具优势
  8. 加密算法—MD5、RSA、DES
  9. 【动态规划】简单背包问题II
  10. 在Windows环境下用Editplus打造一个Python编辑调试环境
  11. linux脚本解密,给shell脚本加密和解密的shell脚本
  12. mysql 数据库备份与恢复_mysql 数据库备份与还原
  13. java jnlp_Java Web Start 与jnlp结合实例讲解
  14. Android系统基础(03) Android系统源码下载
  15. python识别二维码
  16. LeNet识别眼疾iChallenge-PM
  17. unix服务器日志文件,UNIX 系统日志
  18. 未来的无盘网吧是什么样子?
  19. 什么是数字化?为什么需要数字化?
  20. 新政策后Jira还好用吗?国内类似Jira的工具价格对比!

热门文章

  1. 【机器视觉】 endif算子
  2. 【Tiny4412】烧写最小文件系统到EMMC
  3. 【Linux系统编程】文件描述符的复制dup()和dup2()
  4. php 安装 phpunit,phpunit的安装
  5. idea项目没法继承httpservlet_intelj idea社区版开发web项目
  6. GetLastError函数使用及返回代码对照
  7. 每天一道LeetCode-----n皇后问题
  8. linux网络编程-----几种服务器模型及io多路复用函数
  9. mysql 1280_技术分享 | MySQL 一次奇怪的故障分析
  10. 第五章 PX4-GPS解析