2

在 Play 1.x 应用程序中,我想创建一个名为 AppContext 的类,它将充当应用程序中服务之间的粘合层。它可以作为一个简单的依赖注入器,但我也希望它控制事件的工作流,从不同的层捕获事件,这样服务就不必自己做这些了。

我发现将 AppContext 实现为插件将是最好的选择,因为它能够在应用程序加载时做一些事情,还可以监听一些事件,异步执行一些操作等。

这是正确的方法吗?

4

1 回答 1

0

您可以简单地将此类 AppContext 实现为特定缓存条目的包装器,并使用分布式缓存处理程序(已可配置,如 memcache、ehcache、HazelCast ......)。

public class AppContext {
    public String getConfig(String name) {
        return Cache.get("appcontext.config."+name, String.class);
    }

    public void setConfig(String name, String value) {
         Cache.set("appcontext.config."+name, value);
    }

    ...
}

已经有几个插件并且简单地配置了一些这种“分布式缓存管理器”,如 memcache、eh-cache、Hazelcast。

或者,您可以直接使用 Hazelcast(或其他)来保存和同步内存中的上下文和/或以分布式方式处理队列、数据存储等。

于 2015-09-11T15:32:18.977 回答