SessionStatus object.setComplete()是否清除所有会话属性或仅适用于使用它的控制器?

use*_*968 9 model-view-controller spring

如果我在Controller中使用SessionStatus object.setComplete(),它是否清除Webapp的所有会话数据,或者只是清除由使用@SessionAttributes的特定控制器保存的会话数据,我不清楚这一点?

Pav*_*ral 13

SessionStatus#setComplete() JavaDoc非常清楚该方法的用途:

/**
 * Mark the current handler's session processing as complete, allowing for
 * cleanup of session attributes.
 */
Run Code Online (Sandbox Code Playgroud)

这将清除当前处理程序通过注册的会话属性@SessionAttribute.这与servlet完全不同HttpSession#invalidate():

/**
 * Invalidates this session then unbinds any objects bound to it. 
 */
Run Code Online (Sandbox Code Playgroud)

这个实际上完全破坏了用户会话.