Spring与Web整合实例

 更新时间:2017年07月25日 09:01:11   转载 投稿:jingxian  
下面小编就为大家带来一篇Spring与Web整合实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

一 概述

1.整合目的

将所有对象的创建与管理任务交给Spring容器,降低程序的耦合度。

2.整合途径

将Spring容器注入到Web容器中。

3.具体实现

使用ServletContextListener监听ServletContext,当ServletContexxt创建时同时创建Spring容器,并将创建完成的容器放到ServletContext即application中,在Web中获取Spring容器,就可以访问对象了。ContextLoadListener是ServletContextListener的一个实现类,配置:

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

默认情况下,Spring的配置文件只能放在WEB-INF目录下,名称为applicationContext.xml,可以在web.xml文件中修改,将配置文件放在src目录下:

<context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>classpath:xxxx.xml</param-value>
</context>

4.获取Spring容器

WebApplicationContext context=WebApplicationContextUtils.getRequiredWebApplicationContext(getServletContext());

二 延时加载问题

1.原因

视图层调用Service的方法从数据库中加载对象,如果Dao实现层采用了延时加载,返回一个包含null对象的代理,在视图层访问对象的详情时,Service层已经执行完毕,事务已关闭,对象为空,就无法获取对象的详情。

2.解决方法

将Session与请求线程绑定,允许在事务关闭以后完成延时加载任务。

3.具体实现

在web.xml中配置:

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

以上这篇Spring与Web整合实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • springboot 用监听器统计在线人数案例分析

    springboot 用监听器统计在线人数案例分析

    这篇文章主要介绍了springboot 用监听器统计在线人数案例分析,质是统计session 的数量,思路很简单,具体实例代码大家参考下本文
    2018-02-02
  • Java实现简单文件过滤器功能

    Java实现简单文件过滤器功能

    下面小编就为大家分享一篇Java实现简单文件过滤器功能,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01
  • Java处理图片实现base64编码转换

    Java处理图片实现base64编码转换

    这篇文章主要介绍了Java处理图片实现base64编码转换,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • eclipse中自动生成构造函数的两种方法

    eclipse中自动生成构造函数的两种方法

    下面小编就为大家带来一篇eclipse中自动生成构造函数的两种方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • 解析java中的error该不该捕获

    解析java中的error该不该捕获

    这篇文章主要介绍了java中的error该不该捕获,需要的朋友可以参考下
    2014-02-02
  • java密钥交换算法DH定义与应用实例分析

    java密钥交换算法DH定义与应用实例分析

    这篇文章主要介绍了java密钥交换算法DH定义与应用,结合实例形式分析了Java密钥交换算法DH的原理、定义、使用方法及相关操作注意事项,需要的朋友可以参考下
    2019-09-09
  • Java使用continue语句的实例详解

    Java使用continue语句的实例详解

    这篇文章主要介绍了Java使用continue语句的实例详解的相关资料,希望通过本文能帮助到大家,让大家掌握使用方法,需要的朋友可以参考下
    2017-10-10
  • Spring Boot中使用jdbctemplate 操作MYSQL数据库实例

    Spring Boot中使用jdbctemplate 操作MYSQL数据库实例

    本篇文章主要介绍了Spring Boot中使用jdbctemplate 操作MYSQL数据库实例,具有一定的参考价值,有兴趣的可以了解一下。
    2017-04-04
  • Java实现二叉树的深度优先遍历和广度优先遍历算法示例

    Java实现二叉树的深度优先遍历和广度优先遍历算法示例

    这篇文章主要介绍了Java实现二叉树的深度优先遍历和广度优先遍历算法,结合实例形式详细分析了二叉树的定义、深度优先遍历与广度优先遍历算法原理与相关操作实现技巧,需要的朋友可以参考下
    2018-04-04
  • Spring 中优雅的获取泛型信息的方法

    Spring 中优雅的获取泛型信息的方法

    这篇文章主要介绍了Spring 中优雅的获取泛型信息的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03

最新评论