在Struts2+spring+hibernate集成的项目里,用到了spring的OpenSessionInViewFilter过滤器,来延长Session的生命周期,但在使用过程中,lasy加载正常是可以用的,就是session不会自动关闭。我查看源码里有下面一段
[code="java"]
public static void closeSession(Session session) {
if (session != null) {
logger.debug("Closing Hibernate Session");
try {
session.close();
}
catch (HibernateException ex) {
logger.debug("Could not close Hibernate Session", ex);
}
catch (Throwable ex) {
logger.debug("Unexpected exception on closing Hibernate Session", ex);
}
}
}
[/code]
上面的logger根本就没有输入,也就是说没有进入这个地方
[code="java"]
logger.debug("Closing single Hibernate Session in OpenSessionInViewFilter");
closeSession(sessionHolder.getSession(), sessionFactory);
[/code]
只运行了上面那个logger
不清楚是为什么,向高手请教~~~
[b]问题补充:[/b]
他是在完成response后,在过滤器最后关闭的,如果不关闭的话,他占用的数据库连接就没有关闭,一会连接就不够了。。
OpenSessionInView里的Session不能自动关闭?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答
悬赏问题
- ¥15 素材场景中光线烘焙后灯光失效
- ¥15 请教一下各位,为什么我这个没有实现模拟点击
- ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
- ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
- ¥20 有关区间dp的问题求解
- ¥15 多电路系统共用电源的串扰问题
- ¥15 slam rangenet++配置
- ¥15 有没有研究水声通信方面的帮我改俩matlab代码
- ¥15 ubuntu子系统密码忘记
- ¥15 保护模式-系统加载-段寄存器