Spring管理Session何时打开何时关闭

时间:2021-03-04 19:04:12
如题:Spring管理Session何时打开何时关闭,对于一些单个的操作,是比较简单,我现在想知道,当某个业务中我们要像数据库发送N条SQL语句,那么此时的Session又是怎么管理的,是一直处于打开状态的吗?还是发送一条就打开和关闭一次,请高手指教,那么Session又是在何时打开和关闭的?

8 个解决方案

#1


貌似只要插入一条数据,他就关闭一次。
当spring通过过滤器时,只要看到session时关闭的,他就打开了,如果没有关闭就继续用。

你可以插入N条,看看数据库

#2


那要看将事务放在哪个范围。例如放在逻辑层,那就是执行逻辑层方法时打开,执行完毕后关闭。实际上是个拦截器,看AOP切入点在什么地方。

#3


引用 2 楼 zhangjihao 的回复:
那要看将事务放在哪个范围。例如放在逻辑层,那就是执行逻辑层方法时打开,执行完毕后关闭。实际上是个拦截器,看AOP切入点在什么地方。


我来补充几句。

在不涉及到使用OpenSessionInView的时候,这个是正解。
如果使用了OpenSessionInView的话,Session的开始和关闭是已HTTP请求开始为开始,HTTP请求的结束为关闭的。

#4


学习了  OpenSessionInView  

#5


三楼正解

#6


我也一直在纠结这个问题,希望能得到解决。

#7


引用 3 楼 yingzhuo2011 的回复:
引用 2 楼 zhangjihao 的回复:

那要看将事务放在哪个范围。例如放在逻辑层,那就是执行逻辑层方法时打开,执行完毕后关闭。实际上是个拦截器,看AOP切入点在什么地方。


我来补充几句。

在不涉及到使用OpenSessionInView的时候,这个是正解。
如果使用了OpenSessionInView的话,Session的开始和关闭是已HTTP请求开始为开始,HTTP……

+1

#8


 学习了

#1


貌似只要插入一条数据,他就关闭一次。
当spring通过过滤器时,只要看到session时关闭的,他就打开了,如果没有关闭就继续用。

你可以插入N条,看看数据库

#2


那要看将事务放在哪个范围。例如放在逻辑层,那就是执行逻辑层方法时打开,执行完毕后关闭。实际上是个拦截器,看AOP切入点在什么地方。

#3


引用 2 楼 zhangjihao 的回复:
那要看将事务放在哪个范围。例如放在逻辑层,那就是执行逻辑层方法时打开,执行完毕后关闭。实际上是个拦截器,看AOP切入点在什么地方。


我来补充几句。

在不涉及到使用OpenSessionInView的时候,这个是正解。
如果使用了OpenSessionInView的话,Session的开始和关闭是已HTTP请求开始为开始,HTTP请求的结束为关闭的。

#4


学习了  OpenSessionInView  

#5


三楼正解

#6


我也一直在纠结这个问题,希望能得到解决。

#7


引用 3 楼 yingzhuo2011 的回复:
引用 2 楼 zhangjihao 的回复:

那要看将事务放在哪个范围。例如放在逻辑层,那就是执行逻辑层方法时打开,执行完毕后关闭。实际上是个拦截器,看AOP切入点在什么地方。


我来补充几句。

在不涉及到使用OpenSessionInView的时候,这个是正解。
如果使用了OpenSessionInView的话,Session的开始和关闭是已HTTP请求开始为开始,HTTP……

+1

#8


 学习了