`
Jarod Dang
  • 浏览: 10238 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

OpenSessionInView的配置

阅读更多
众所周知hibernate的lazy问题。当session关闭后,再想延迟加载对象就会报出 no session or session was closed的错误
后spring提供了OpenSessionInView解决了此问题,大概原理是这样的首先获得SessionFactory,然后通过SessionFactory获得一个Session。然后执行真正的Action代码,最后根据情况将Hibernate的Session进行关闭。

配置方法
1.filter配置
web.xml
	<filter>
		<filter-name>OpenSessionInViewFilter</filter-name>
		<filter-class>
			org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
		</filter-class>
	</filter>

	<filter-mapping>
		<filter-name>OpenSessionInViewFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

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


2.将struts以plugin形式注入到spring的ioc中
struts-config.xml
<plug-in
		className="org.springframework.web.struts.ContextLoaderPlugIn">
		<set-property property="contextConfigLocation"
			value="/WEB-INF/action-servlet.xml" />
	</plug-in>


3.action beans
action-servlet.xml
	<bean name="/orgInit/orgInit"
		class="jarod.javaeye.action.orgInit.OrgInitAction" >
		<property name="orgInitService">
			<ref bean="orgInitServiceImpl" />
		</property>
	</bean>

...

我测试的结果是不可将action beans放入application-context.xml中,直接注入spring

相关参考和前辈出现过的问题
http://www.iteye.com/topic/17501性能问题
http://www.iteye.com/topic/15057采用struts配置中容易出现的问题
http://www.iteye.com/topic/9668有关OpenSessionInView模式的问题
分享到:
评论

相关推荐

    SSH搭建详细步骤

    -- OpenSessionInView配置 --&gt; &lt;filter-name&gt;openSessionInViewFilter &lt;filter-class&gt;org.springframework.orm.hibernate4.support.OpenSessionInViewFilter &lt;filter-name&gt;openSessionInViewFilter ...

    Spring hibernate opensessioninview

    ### Spring + Hibernate OpenSessionInView 模式的理解和应用 在Java Web开发中,Spring与Hibernate作为两个重要的框架,经常被一起使用来实现业务逻辑与数据持久化的处理。而在使用这两个框架时,为了更好地管理...

    OpenSessionInView项目整合jar包

    2. **启用OpenSessionInView过滤器**:在web.xml中配置OpenSessionInViewFilter,该过滤器会在HTTP请求开始时开启一个新的Hibernate Session,并在请求结束时提交或回滚事务并关闭Session。 3. **编写业务逻辑**:在...

    Open_Session_In_View详解.doc

    在此配置中,我们定义了一个名为`openSessionInViewInterceptor`的拦截器,并将它绑定到了一个特定的URL映射上。需要注意的是,必须指定`sessionFactory`的引用。 ##### 2. OpenSessionInViewFilter配置 ```xml ...

    第30讲--Spring提供的CharacterEncoding和OpenSessionInView功能

    同时,需要注意的是,OpenSessionInView模式虽然方便,但也会带来潜在的问题,如事务边界不清晰和会话泄漏。因此,在实际应用中,应结合具体需求谨慎使用,并考虑使用更现代的解决方案,如Spring Data JPA的...

    ssh配置总结

    配置OpenSessionInView过滤器**: 为了确保在一个请求生命周期内只开启一次Session,可以使用Spring提供的`OpenSessionInViewFilter`。其配置如下: ```xml &lt;filter-name&gt;openSessionInView &lt;filter-class&gt;org....

    SSH项目整合示例【OpenSessionInView】所用到的jar包

    OpenSessionInView(OSIV)模式是SSH整合中常见的一种优化策略,它在用户的一次HTTP请求过程中保持Hibernate Session,避免了多次打开和关闭Session,减少了N+1查询问题,提高了性能。 **Spring** 是一个全面的企业...

    Spring提供的CharacterEncoding和OpenSessionInView功能

    通过在Web应用的配置文件(如web.xml)中添加该过滤器,可以全局设定请求和响应的字符编码,确保数据在传输过程中的正确性。 配置`CharacterEncodingFilter`通常如下: ```xml &lt;filter-name&gt;...

    Spring配置总结

    - **配置延迟加载时使用OpenSessionInView**: OpenSessionInView是一种技术,用于解决Hibernate在多线程环境下的一级缓存问题。通过在web.xml中配置`OpenSessionInViewFilter`,可以实现持久化层的事务与视图渲染...

    关于OpenSessionInViewFilter的学习

    OpenSessionInViewFilter是Spring框架中一个非常重要的组件,主要用于解决数据访问...这个文档应该包含了OpenSessionInViewFilter的源码分析、配置示例以及常见问题的解答,对理解该过滤器的功能和工作原理非常有帮助。

    SSH全注解环境搭建

    - 配置OpenSessionInView过滤器以实现懒加载: ```xml &lt;filter-name&gt;openSessionInView &lt;filter-class&gt;org.springframework.orm.hibernate5.support.OpenSessionInViewFilter &lt;filter-name&gt;...

    jsf + spring +hibernate 自己做的一个例子,主要是看一些基本配置

    在整合JSF、Spring和Hibernate时,通常会使用Spring的OpenSessionInView模式来处理数据库会话。这能确保在HTTP请求的整个生命周期内保持有效的Hibernate Session,从而避免可能出现的数据访问问题。 至于压缩包中的...

    spring中lazy=“true”的正常读取关联表(用opensessioninview)

    `数据库.txt` 可能包含了关于数据库设计、SQL查询优化或其他数据库管理方面的内容,而 `osiv` 文件则可能详细阐述了OSIV的工作原理或如何在项目中配置和使用。 总结来说,`lazy="true"` 是一种有效的性能优化策略,...

    ssha 最新 最完整 配置信息

    **表格13**: web.xml配置文件OpenSessionInView设置(必需设置) ```xml &lt;filter-name&gt;openSessionInViewFilter &lt;filter-class&gt;org.springframework.orm.hibernate3.support.OpenSessionInViewFilter ...

    HibernateSpring多数据库解决方案.doc

    本方案主要探讨如何在基于Hibernate和Spring框架的环境中实现多数据库的管理,特别是在`OpenSessionInView`模式下的配置。 首先,我们看到在`applicationContext.xml`配置文件中定义了两个数据源,一个用于读操作...

    spring+spingmvc+hibernate整合总结

    在整合过程中,首先需要在`web.xml`中配置监听器,以便在Web应用启动时加载Spring的配置文件,如`applicationContext.xml`。配置完成后,Spring会根据配置文件管理各个bean,实现依赖注入。 二、Hibernate框架集成 ...

    ssh构架搭建步骤 (2).pdf

    8. **配置OpenSessionInView过滤器**: - Spring提供了一个名为`OpenSessionInViewFilter`的过滤器,用于解决在Web应用中处理请求时的事务边界问题。它确保每个HTTP请求都有一个开启的Hibernate Session。 - 配置...

    OA项目SSH整合框架

    3,在web.xml中配置 spring 的 OpenSessionInView 过滤器(解决抛LazyInitializationException的问题) 1,配置 &lt;!-- 配置 spring 的 OpenSessionInView 过滤器 --&gt; &lt;filter-name&gt;OpenSessionInView ...

    SSH项目整合示例【源码】

    在Spring中,通过开启`&lt;tx:annotation-driven&gt;`和配置`HibernateTransactionManager`,结合特定的拦截器,可以实现OpenSessionInView。 5. **整合过程**:SSH整合涉及配置多个文件,包括web.xml(应用部署描述符)...

Global site tag (gtag.js) - Google Analytics