命名空间
webforJ中的命名空间提供了一种机制,用于在Web应用程序的不同范围之间存储和检索共享数据。它们使组件之间和跨会话的数据通信成为可能,而无需依赖传统的存储技术,例如会话属性或静态字段。这种抽象使开发人员能够以受控、线程安全的方式封装和访问状态。命名空间非常适合构建多用户协作工具或简单地维护一致的全局设置,并让您安全高效地协调数据。
什么是命名空间?
命名空间是一个命名的容器,用于存储键值对。这些值可以根据所使用的命名空间类型在应用程序的不同部分进行访问和修改。可以将其视为一个线程安全的分布式映射,具有内置的事件处理和锁定机制。
何时使用命名空间
在以下情况下使用命名空间:
- 您需要在用户会话或应用程序组件之间共享值。
- 您希望通过监听器对值变化做出反应。
- 您需要对关键区域进行细粒度锁定。
- 您需要高效地在应用程序中持久化和检索状态。
命名空间的类型
webforJ提供了三种类型的命名空间:
| 类型 | 范围 | 典型用途 |
|---|---|---|
| 私有 | 在使用相同前缀和名称的客户端之间共享。当没有引用时,内存会自动释放。 | 相关用户会话之间的共享状态。 |
| 组 | 在从同一父线程生成的所有线程之间共享。 | 在线程组内协调状态。 |
| 全局 | 在所有服务器线程(JVM范围)中可访问。内存将保留,直到显式移除键。 | 应用程序范围的共享状态。 |
选择默认值 - 优先使用
PrivateNamespace当不确定时,使用 PrivateNamespace。它提供了相关会话之间的安全、范围共享,而不会影响全局或服务器范围的状态。这使其成为大多数应用程序的可靠默认值。