将AppContext实现为Play插件

时间:2013-07-22 13:23:43

标签: java dependency-injection playframework inversion-of-control playframework-1.x

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

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

这是正确的方法吗?

1 个答案:

答案 0 :(得分:0)

您可以简单地将此类AppContext实现为特定Cache条目的包装,并使用分布式Cache处理程序(已经可配置,如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(或其他)来保存和同步内存上下文和/或以分布式方式处理队列,数据存储等。