我是Windsor Castle(.NET)的一员,在Google Guice工作很久以后才开始使用Google Guice。Google Guice中的自动启动和停止服务
我想在Google Guice中实现类似于Windsor Castle Startable Facility(http://docs.castleproject.org/Windsor.Startable-Facility.ashx)的功能。
这意味着一旦绑定并且满足所有依赖关系,注入器将自动创建单件服务的实例。
我想在服务创建时调用start()方法,在应用程序关闭时调用stop()方法。例如,start()会初始化一个定时器,stop()通常会取消该定时器。
我知道的渴望单身的特征“.asEagerSingleton()”,但我能想到的一些问题吧:
(1)如果我做的方法注入的服务,该服务的构造函数在方法注入依赖关系被设置之前调用。因此,我可能无法在施工时间内完全使用该服务。
(2)没有自动关机。我必须在应用程序关闭逻辑中手动获取服务的实例,并调用stop()方法。更糟糕的是,如果我有很多这样的服务,我必须根据交叉依赖性明确地管理关闭顺序。
有什么建议吗?
我发现LifeGycle(http://99soft.github.io/lifegycle)应该有助于管理注入对象的生命周期。我会试一试。 – dux2