在Play 1.x应用程序中,我想创建一个名为AppContext的类,它将作为应用程序中服务之间的粘合层。它可以作为一个简单的依赖注入器,但我也希望它控制事件的工作流程,从不同的层捕获事件,这样服务就不必自己做。
我发现将AppContext实现为插件将是最好的选择,因为它可以在应用程序加载时执行一些操作,还可以监听某些事件,异步执行某些操作等。
这是正确的方法吗?
答案 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(或其他)来保存和同步内存上下文和/或以分布式方式处理队列,数据存储等。