首先要在工程的web.xml中配置如下: 配置要放在web.xml最上面
<filter>
<filter-name>openSessionInViewFilter</filter-name>
<filter-class>org.springframeword.orm.hibernate3.OpenSessionInViewFilter</filter-class>
<init-param>
<param-name>singleSession</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>sessionFactoryBeanName</param-name>
<param-value>sessionFactoryClientManage</param-value>
</init-param>
</filter>
这里配置的时候涉及到两个初始化的参数,其中singleSession为true可保证如果获取当前线程绑定的session没有获取到的话,可以重新创建一个(细节大家可以看下相关API或者是源码)。看网上好多相关的说法突出说明一定要配置singleSession为true,实际上在源码中,这个属性默认就是为true的。
另外还有一个sessionFactoryBeanName这个属性,这个属性是指定通过哪个sessionFactory去获得session的。默认情况下,会在Spring管理的Bean中去查找ID为sessionFactory的sessionFactory配置,如果你在开发的过程中指定了其它的ID名称,那么在这里一定要记住进行配置。要不就会报找不到那个bean的错误。
好了,接下来我们就可以用这个拦截器去过滤我们的servlet了
<filter-mapping>
<filter-name>openSessionInViewFilter</filter-name>
<servlet-name>这里加入你要过滤的servlet名称</servlet-name>
</filter-mapping>
OK,现在好了,我们可以用了。
用这个的时候经常遇到一些问题如下:
打开的session是否要自己关闭:这个是不用的,上面指定的filter打开session,同时在完成请求之后会把这个session关掉的,所以自己不用关心这个。
通过session.openConnection()方法打开的connection要自己关闭吗,其实一般来说,自己打开的资源是需要自己关闭的,
但是这里的connection并不是自己打开的,如果使用了连接池的话,session用完的connection会回到池中的,这个会由连接池去管理,所以自己也不用操心(这个只是自己的理解,不知道对不对)。
好了,这个就写到这,大家有什么想法一起交流,谢谢!
分享到:
相关推荐
#### 四、注意事项 - **版本一致性**:在配置SSH框架时,确保所有组件的版本兼容,尤其是Spring、Hibernate和Struts2之间的依赖版本,避免因版本不一致导致的运行时错误。 - **性能优化**:在配置文件中,合理设置...
本文将重点介绍SSH框架的部署步骤以及一些重要的注意事项。 #### 二、SSH框架部署步骤 ##### (一)Spring配置与集成 **1. 添加必要的jar包:** 在构建SSH框架项目时,需要添加Spring的核心库到项目的类路径中,...
6. **注意事项**: - 在整合SSH时,确保各组件版本兼容,避免出现不兼容问题。 - 调整`flushMode`值可以影响数据库的交互频率,根据具体需求选择合适的模式。 - 为防止内存泄漏,需正确关闭SessionFactory和...
4. **注意事项:** - 确保OpenSessionInViewFilter在Spring容器中正确配置,并且与应用的其他部分协调一致。 - 在高并发场景下,需要注意OpenSessionInViewFilter可能会导致的性能问题,因为它使得Session的生命...
### Struts2、Spring与Hibernate整合的关键点及注意事项 #### 一、概述 在Java Web开发领域,Struts2、Spring以及Hibernate是三个非常重要的框架。它们分别在MVC架构、依赖注入与业务逻辑管理、对象关系映射等方面...
#### 六、其他注意事项 - **CGLIB版本**:确保项目中使用的CGLIB版本正确无误,如需使用CGLIB 2.2版本,请确保与项目中其他依赖不冲突。 - **JSTL支持**:如果项目中需要使用JSTL标签库,则需要在项目中添加相应的...
7. SSH整合时的注意事项: - 确保所有的配置文件都正确无误,例如web.xml中的过滤器和监听器的配置顺序,以及applicationContext.xml中的bean配置。 - 注意SSH各个组件之间的依赖关系,例如Struts2与Spring的集成...
5. **分页查询的注意事项** - Hibernate4中,如果你在进行分页查询时遇到“ResultSet may only be accessed in a forward direction”的错误,这是因为结果集默认只能向前滚动。为了解决此问题,可以在Hibernate...
#### 五、总结与注意事项 - **性能优化**:考虑使用二级缓存提高查询效率。 - **异常处理**:确保所有异常都能被妥善处理,避免程序崩溃。 - **安全性**:加强SQL注入等安全防护措施。 - **测试**:进行单元测试和...
四、最佳实践与注意事项 - **细粒度控制**:确保Session和事务的控制符合应用的具体需求,避免不必要的资源浪费或并发问题。 - **异常处理**:在自动处理机制中,应充分考虑异常情况,确保即使在请求失败的情况下也...