##注意hibernateFilter过滤器和struts2过滤器在映射时的先后顺序,如果hibernateFilter与struts2的filter倒置,就会抛懒加载异常:org.hibernate.LazyInitializationException: failed to lazily initialize
##找了一下午错误,这种细节谨记! 记下忘记看看。。。
<!-- spring 加载配置文件 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:applicationContext-*.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<!-- spring OpenSessionInViewFilter -->
<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- struts2配置 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Hibernate 允许对关联对象、属性进行延迟加载,但是必须保证延迟加载的操作限于同一个 Hibernate Session 范围之内进行。如果 Service 层返回一个启用了延迟加载功能的领域对象给 Web 层,当 Web 层访问到那些需要延迟加载的数据时,由于加载领域对象的 Hibernate Session 已经关闭,这些导致延迟加载数据的访问异常。而Spring为我们提供的OpenSessionInViewFilter过滤器为我们很好的解决了这个问题。OpenSessionInViewFilter的主要功能是使每个请求过程绑定一个 Hibernate Session,即使最初的事务已经完成了,也可以在 Web 层进行延迟加载的操作。OpenSessionInViewFilter 过滤器将 Hibernate Session 绑定到请求线程中,它将自动被 Spring 的事务管理器探测到。所以 OpenSessionInViewFilter 适用于 Service 层使用HibernateTransactionManager 或 JtaTransactionManager 进行事务管理的环境,也可以用于非事务只读的数据操作中。
request-->open session-->打开连接、开始事务-->持久操作-->渲染(关闭连接、session)-->response 其中一些过程省略了,不是很关心。
参考出处:http://blog.csdn.net/fhwbj/archive/2009/03/25/4022805.aspx
分享到:
相关推荐
2. **Struts2配置Spring插件**:在`struts.xml`中配置Spring插件,并通过该插件实现Struts2与Spring之间的集成。 3. **Action类注入Service层**:在Struts2的Action类中,通过Spring的依赖注入机制注入Service层接口...
在`web.xml`中配置Spring监听器以初始化Spring容器,并添加`OpenSessionInViewFilter`以解决懒加载问题: ```xml <listener-class>org.springframework.web.context.ContextLoaderListener <filter-name>...
解决这个问题的方法有两种:一种是在 web.xml 中使用 Spring 提供的 OpenSessionInViewFilter,另一种是在 application.xml 中配置 OpenSessionInViewFilter。前者通用,后者只能用于 SpringMVC 结构中。 最后,...
- 添加OpenSessionInViewFilter,解决在视图层处理时可能出现的懒加载异常。 10. **编写Action类**: - 创建Action类,它们通常对应于特定的业务操作,如增、删、改、查。 11. **更新struts.xml**: - 在`...
将 Action 的类型更改为 `org.springframework.web.struts.DelegatingActionProxy`,这使得 Struts 可以通过 Spring 来管理和实例化 Action 类。 5. **Spring 注入 Action**: 在 Spring 的配置文件中,定义 ...
为了实现Struts1.x与Spring2.x的无缝集成,首先需要在项目的`web.xml`文件中进行必要的配置。具体步骤如下: - **配置Spring ContextLoaderListener**:通过`ContextLoaderListener`来加载Spring的应用上下文。 `...
本次讨论将围绕给定的`web.xml`和`struts.xml`配置文件进行深入解析,并结合这些配置文件中的具体内容来阐述相关的知识点。 ## 二、`web.xml`配置分析 ### 2.1 Spring配置 在`web.xml`文件中,首先定义了Spring的...
在Struts2的配置文件`struts.xml`中,配置Spring对象工厂以便Struts2能够利用Spring管理的Bean,同时设置编码集和其他开发相关的配置: ```xml <!-- 集成spring --> <constant name="struts.objectFactory" value=...
`struts.xml`是Struts2的核心配置文件,定义了Action类和结果页面的映射。`<filter>`和`<filter-mapping>`元素在`web.xml`中设置Struts2过滤器,确保所有请求都通过Struts2处理。 2. **Hibernate**:Hibernate是ORM...
在`web.xml`中,`OpenSessionInViewFilter`是一个用于解决懒加载异常的关键配置,它确保在用户请求的整个生命周期内,Hibernate Session保持打开状态。`sessionFactoryBeanName`参数关联到Spring配置中的...
S2SH,即Struts2 + Spring + Hibernate,是Java Web开发中一个经典的三层架构框架组合。本文将深入解析一个典型的S2SH项目的XML配置文件内容,帮助初学者更好地理解和掌握S2SH框架的核心配置与工作原理。 #### 二、...
- 在`struts.xml`中,为每个Action配置名称、执行类、方法和结果页面。例如,`add`动作指向`addBean`类的`add`方法,成功后跳转到`add_suc.jsp`。 12. **调整Spring配置**: - 根据Action类的需求,可能需要在`...
3. **整合Spring与Struts2**:通过设置`struts.objectFactory`参数为`spring`,使得Struts2能够利用Spring容器管理Action实例。 #### 三、为项目添加Spring支持 1. **依赖引入**:确保项目中包含了Spring框架的...
在IT领域,特别是Java企业级应用开发中,Struts、Hibernate和Spring的集成是一个非常重要的主题,这三者的结合能够构建出稳定、高效且可扩展的Web应用程序。下面,我们将详细探讨如何在项目中实现Struts、Hibernate...
`web.xml` 是一个 XML 文件,它定义了 Web 应用的基本配置,包括 Servlet 容器如何加载和初始化 Web 应用。下面是几个重要的配置项: - **Spring 上下文初始化**:通过 `<context-param>` 和 `<listener>` 元素配置...
<controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor"/> ``` 这里定义了一个路径为“/pet”的Action,名为“petForm”,参数为“operate”,作用域为“request”。 #### 3....
- 修改Struts配置:将Action的type属性设置为`org.springframework.web.struts.DelegatingActionProxy`,指示Struts使用Spring来管理Action实例。 - 配置web.xml:指定Spring的上下文加载监听器`org.spring...
- 在`web.xml`中配置Struts2 Filter(`<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>`),确保在HTTP请求的生命周期内保持Hibernate Session,防止 ...
在给定的文件信息中,虽然标题和描述指向了“SSH配置文件”,但【部分内容】却涉及到了Struts2、Spring、Hibernate这三个框架在Web项目中的集成与配置。因此,以下将围绕这部分内容进行深入解析,详细介绍如何在Web...
在web.xml中,可以配置`OpenSessionInViewFilter`来解决懒加载问题,保持一个Session贯穿整个请求过程。 3. **Spring** - 提供依赖注入和管理服务,可以将Action和DAO注入到DWR的配置中。同时,Spring也负责配置...