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整合实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • idea中创建jsp项目的详细实战步骤

    idea中创建jsp项目的详细实战步骤

    才学javaWeb,以防自己忘记创建项目的过程,所以浅浅的记录一下吧,下面这篇文章主要给大家介绍了关于idea中创建jsp项目的详细步骤,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2022-09-09
  • linux环境下java程序打包成简单的hello world输出jar包示例

    linux环境下java程序打包成简单的hello world输出jar包示例

    这篇文章主要介绍了linux环境下java程序打包成简单的hello world输出jar包,结合简单hello world输出程序示例分析了Linux环境下的java可执行jar包文件的生成相关操作技巧,需要的朋友可以参考下
    2019-11-11
  • 玩转spring boot 快速开始(1)

    玩转spring boot 快速开始(1)

    玩转spring boot,快速开始spring boot学习,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01
  • 在springboot中拦截器Filter中注入bean失败问题及解决

    在springboot中拦截器Filter中注入bean失败问题及解决

    这篇文章主要介绍了在springboot中拦截器Filter中注入bean失败问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • 使用Spring Expression Language (SpEL)全面解析表达式

    使用Spring Expression Language (SpEL)全面解析表达式

    这篇文章主要介绍了使用Spring Expression Language (SpEL)全面解析表达式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • 关于springmvc报错404的问题

    关于springmvc报错404的问题

    这篇文章主要介绍了关于springmvc报错404的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • Mybatis注解增删改查的实例代码

    Mybatis注解增删改查的实例代码

    这篇文章主要给大家介绍了关于Mybatis注解增删改查的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • Java实现本地缓存的方式汇总

    Java实现本地缓存的方式汇总

    引入缓存,主要用于实现系统的高性能,高并发,这篇文章主要介绍了Java实现本地缓存的几种方式,本文结合示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07
  • 浅谈Java为什么只能单继承

    浅谈Java为什么只能单继承

    本文主要介绍了Java为什么只能单继承,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • Springboot实例讲解实现专业材料认证管理系统流程

    Springboot实例讲解实现专业材料认证管理系统流程

    这是一个基于java的毕业设计项目,毕设课题为springboot框架的知识产权服务平台系统,是一个采用b/s结构的javaweb项目,需要的朋友可以参考下
    2022-06-06

最新评论