我有一个 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对象已被此阶段销毁。
我也知道这种方法可能是完全错误的;)
任何帮助是极大的赞赏。