我开始以MVP风格(GWTP)开发GWT应用程序,并在服务器端使用Spring安全性进行身份验证和授权。
在应用程序的许多视图中,我必须启用或禁用与当前用户的授权权限相关的控件。我已经有了一个RPC服务,它提供了对包含所有必要信息的userDetailsDto的访问。
现在我的问题是:在客户端存储用户DTO的最佳位置是什么?
由于用户权限与许多演示者相关,因此我必须在任何地方传递它。或者,我可以在每个演示者中设置RPC服务实例,并且每次都重新获取用户详细信息(可能在客户端缓存)。但我不喜欢为每个演示者提供用户RPC服务的想法。
说实话,我宁愿选择一个中央注册表来放置UserDetails对象,并且可以在我的应用程序的任何地方访问它。 GWT中是否已有这样的注册表?
在我的示例中,您可能经常遇到水平使用的对象。如何在GWT中处理它们?
答案 0 :(得分:5)
只需将当前用户存储在公共静态变量中。 它可以从任何地方访问。
答案 1 :(得分:4)
我将“AppState”对象注入所有需要知道登录用户权限,偏好等内容的演示者。我更喜欢注入公共静态变量,因为它感觉更受控制,更容易在测试中进行模拟,额外的输入迫使我考虑每个对象是否真的需要访问全局数据。