对于我们的 Spring MVC 3.1 应用程序,我需要简单的、更可取的基于 session 的缓存。我知道在 3.1 中引入了缓存抽象,但据我所知,它是应用程序范围的缓存。我们需要更简单的东西来缓存用户网格数据。我什至不直接使用它来开采,只要它有简单的界面。
有人用过类似的东西吗?有什么好的库吗?或者有没有办法强制 Spring 缓存抽象只缓存当前 session 的数据?还是我注定要自己写?
最佳答案
session 作用域bean
如果您不介意显式解决方案,请使用 session
创建一个 bean范围并将其注入(inject)您的 Controller 。
如果你没有忘记用范围代理(<aop:scoped-proxy/>
)包装它,你可以
只需将缓存数据放在该 bean 的字段中即可。 Spring 将自动为每个 HTTP session 创建一个该 bean 的实例并将其存储在那里。
缓存抽象
另一方面,我认为 Spring 缓存抽象可能对您有用 - SPeL 使您可以访问 HTTP 环境,因此您可能基于当前用户 session ID 或其他一些属性(如用户名)以声明方式(在注释中)构造缓存键。
关于java - 用于 spring mvc 3 的简单基于 session 的数据缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7402455/