1

玩!框架是否为生命周期应该与进程相同的对象提供容器?

Play 2.0 具有提供 onStart 和 onStop 的 GlobalSettings,但没有明显的“容器”用于进程生命周期对象。

对于 Play 1.2.7,我需要:

  1. 一个 onStart 钩子来初始化一些资源
  2. 用于清理资源的 onStop 挂钩
  3. 用于管理进程生命周期对象的容器

建议?

4

1 回答 1

2

您可以将播放作业与@OnApplicationStart初始化@OnApplicationStop和清理一起使用:
http ://www.playframework.com/documentation/1.2.7/jobs#anameconceptsBootstrapjobsa

另一种方法是编写自己的插件(它允许您加入更多的播放过程,如 beforeActionInvocation 等):

public class ApplicationPlugin extends PlayPlugin {
    @Override
    public void onApplicationStart() { }

    @Override
    public void onApplicationStop() { }

    @Override
    public void beforeInvocation() { }

    @Override
    public void beforeActionInvocation(Method actionMethod) {

    // etc. ...
}

该插件还需要在conf/play.plugins文件中优先考虑:

1000:my.java.package.ApplicationPlugin

根据您要存储的对象,您可以将“进程生命周期对象”放入数据库中,还是只是一个 HashMap?我也在考虑缓存(http://www.playframework.com/documentation/1.2.7/cache),但我不确定这是否是最好的主意(例如,因为过期超时)。

于 2013-10-29T23:34:42.890 回答