有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

雅加达面向大型应用程序的ee会话管理(Java)

我的问题有点主观,可能是断章取义,所以请原谅

我正在开发一个应用程序,我们需要在不同的地方使用会话

  1. 在会话中存储用户首选项
  2. 在会话中存储一些属性
  3. 用户档案
  4. 正在会话中存储购物车

还有很多其他事情,我们需要提供一种干净的方式,让其他人使用这个会话。 我知道如何注入会话或使用它,以及它是如何工作的,所以这不是我的问题

我想知道如何创建一个服务,比如SessionService,并让所有API使用它来处理HTTP会话

是否有人参与/开发了此类实施,如果有,请分享如何最好地完成,任何参考都将非常有用

编辑

我们正在使用Spring Security进行身份验证和授权


共 (1) 个答案

  1. # 1 楼答案

    我坚信,在任何可能的情况下,会话都应该尽可能地与系统的业务逻辑分离

    无论如何,在视图层上操作时,请提供访问会话的实用程序,但请记住以下几点:

    • 会话对象本身不是线程安全的
    • 任何属性都可以随时更改
    • 任何属性都可以被任何代码修改
    • 测试任何与会议有关的内容都是痛苦的

    如果您关注业务逻辑,则考虑以下方法;

    • 实现服务层
      • 处理业务逻辑不可变对象
      • 转换可以由自定义适配器或Spring convertors处理
      • 提供视图和业务逻辑之间的关注点分离
      • 更好的可测试性(如果这是一个词的话)
    • 管理内存中对象数据库而不是会话中的临时状态
      • 支持分布式复制,因此可以实现HA
      • 支持事务性行为以实现一致性
      • 易于测试
      • 在简历上看起来很酷

    我希望这有帮助。如果不是的话,也许多了解一下你的目标会有所帮助