我们有一个 Web 应用程序,其中涉及创建一些重型实用对象(就内存性能而言)。它可以在任何应用程序层上使用。这些实用程序对象特定于用户。因此,理想情况下应该发生的是在用户登录时创建这些对象,将它们缓存在“某处”并在需要的地方重用它们。
现在可用选项是 session 、应用程序。但这些并不适用于所有级别。一种方法是将它们传递到后续层。但这将违反关注点分离方法,并且其他层需要了解 Web 层。
另一种方法是使用静态实用程序类来缓存这些对象。类似的东西
MyUtilObject myObject = MyUtilCache.getMyUtilObject(userName);
在内部,由 HashMap(可能还有软引用)之类的东西支持。这些对象将在用户注销或 session 到期时被清除。
这是我们正在使用的
JBoss、Struts1.2、Spring。所有层都在同一台机器上(在单个运行时)。
请分享您对此的想法/方法。
最佳答案
您所需要的只是一个所有层都通用的界面。该实现可以由 Session
支持并在需要的地方注入(inject)。
关于java - 关于应用程序级上下文缓存的设计思路(类似于Web中的 session /应用程序上下文),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8801544/