2

我有一个 Play 2 应用程序,它使用 Guice 将静态对象(实时传感器监控对象)注入 Application.java:

控制器。应用:

public class Application extends Controller {
    @Inject static MonitorService monitorService;
    ...
}

模块.依赖项:

public class Dependencies {
   ....
   @Provides
   @Singleton
   public MonitorService getMonitorService(final MonitorFactory factory) {
       return new MonitorService(factory){
              @Override 
              public MonitorService(Factory factory){
                 return factory.getMonitor();
              }
          }
   }
}

我的问题是我想在播放应用程序退出时访问工厂监视对象以便优雅地关闭它。我已经查看了连接到GlobalSettings.onStop但看不到从Play.Application对象中提取引用的方法。我尝试将MonitorService注入 Global 类,但它返回一个 null 对象,所以我假设Dependencies对象已被此阶段销毁。

我也知道这种方法可能是完全错误的;)

任何帮助是极大的赞赏。

4

1 回答 1

0

我假设您使用的是Typesafe 插件

AFAIK,不幸的是,插件关闭时没有监听onStop() method器,有一个 onStart() 方法,但没有任何.

因此,要么你 fork 插件,要么将 Guice 自己集成到 Global 对象的 onStart/onStop 方法中。

于 2012-11-28T14:08:24.430 回答