venusdrogon / feilong-platform

:gem:all feilong projects's parent
http://feitianbenyue.iteye.com/
Apache License 2.0
94 stars 58 forks source link

session accessor 支持 getSession false 功能 #210

Closed venusdrogon closed 6 years ago

venusdrogon commented 6 years ago

如果不是false , 到这里就会开启session

但是其实这里是不需要开新session 的 , 浪费性能

image

12:04:22 DEBUG (AbstractHandlerMethodInterceptorAdapter.java:242) logBegin() - will [GuestInterceptor.doPreHandle],[http://127.0.0.1:8091/item/2/PIM-7129257735AD1F3B6E5BE8-2-B]
12:04:22 DEBUG (SessionRepositoryFilter.java:366) getSession() - A new session was created. To help you troubleshoot where the session was created we provided a StackTrace (this is not an error). You can prevent this from appearing by disabling DEBUG logging for org.springframework.session.web.http.SessionRepositoryFilter.SESSION_LOGGER
java.lang.RuntimeException: For debugging purposes only (not an error)
    at org.springframework.session.web.http.SessionRepositoryFilter$SessionRepositoryRequestWrapper.getSession(SessionRepositoryFilter.java:368)
    at org.springframework.session.web.http.SessionRepositoryFilter$SessionRepositoryRequestWrapper.getSession(SessionRepositoryFilter.java:390)
    at org.springframework.session.web.http.SessionRepositoryFilter$SessionRepositoryRequestWrapper.getSession(SessionRepositoryFilter.java:217)
    at javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWrapper.java:279)
    at com.**.store.web.interceptor.member.GuestInterceptor.doPreHandle(GuestInterceptor.java:37)
    at com.feilong.spring.web.servlet.interceptor.AbstractHandlerMethodInterceptorAdapter.preHandle(AbstractHandlerMethodInterceptorAdapter.java:121)
    at org.springframework.web.servlet.HandlerExecutionChain.applyPreHandle(HandlerExecutionChain.java:133)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:962)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
venusdrogon commented 6 years ago

底层功能已经有了

image

venusdrogon commented 6 years ago

feilong 底层 ,在只有 要保存的时候, 才会开启 session, 其他地方 都是 getSession(false)

"为什么 使用 sessionAccessor 要比自己直接使用 request.getSession 好的其中的一个理由"

ijiangtao commented 6 years ago

666

getSession()和 getSession(true)的效果是一样的,这是很多人会不自觉陷入的坑