sessionscope如何选择?内行人教你避开这些坑!

吉云

今天搞搞 SessionScope,这玩意儿还挺有意思,分享一下我的实践过程。

我也不太清楚这东西具体咋用,就上网查查。大概知道 SessionScope 就是说,在整个会话期间,某个东西都是有效的。就像你开着浏览器,只要不关,或者不闲着太久(一般是30分钟),这个东西就一直存在。

我寻思这玩意儿能干啥? 后来我想到,可以用它来做用户隔离。 比如说,一个用户一个实例,这样不同用户之间的数据就不会搞混。

sessionscope如何选择?内行人教你避开这些坑!

开搞!

我先准备一个类,然后给它加上 @SessionScope 这个注解。


// 假设这是个用户服务类

@SessionScope

public class UserService {

sessionscope如何选择?内行人教你避开这些坑!

// ... 这里面放一些用户相关的数据和操作 ...

然后,我在另一个类里用这个 UserService


@Service

sessionscope如何选择?内行人教你避开这些坑!

public class MyService {

@Autowired

private UserService userService;

// ... 使用 userService 做一些事情 ...

sessionscope如何选择?内行人教你避开这些坑!

接下来就是见证奇迹的时刻!

  • 我先用 Edge 浏览器打开一个页面,访问我的应用。
  • 然后,我又用 Edge 浏览器打开另一个页面,再次访问我的应用。

我发现,这两个页面里的 UserService 实例是不一样的! 也就是说,每个页面都有自己独立的 UserService 实例,它们互不干扰。 这就实现我想要的用户隔离效果。

我感觉这个 SessionScope 还是挺有用的, 以后在做 Web 应用的时候, 可以考虑用它来管理一些需要在会话期间保持状态的东西。

SessionScope,还有其他的 Scope, 像 RequestScopeApplicationScope,以后有机会再慢慢研究。

免责声明:由于无法甄别是否为投稿用户创作以及文章的准确性,本站尊重并保护知识产权,根据《信息网络传播权保护条例》,如我们转载的作品侵犯了您的权利,请您通知我们,请将本侵权页面网址发送邮件到qingge@88.com,深感抱歉,我们会做删除处理。

目录[+]