Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Google Guice中自动启动和停止服务_Java_Castle Windsor_Guice_Ioc Container - Fatal编程技术网

Java 在Google Guice中自动启动和停止服务

Java 在Google Guice中自动启动和停止服务,java,castle-windsor,guice,ioc-container,Java,Castle Windsor,Guice,Ioc Container,在与温莎城堡(.NET)进行了大量工作后,我对谷歌Guice还是个新手 我希望在Google Guice中实现类似于Windsor Castle Startable Facility()的功能 这意味着一旦绑定了我的singleton服务并且满足了所有依赖项,injector就会自动创建它的实例 我想在创建服务时调用start()方法,在应用程序关闭时调用stop()方法。例如,start()将初始化计时器,stop()通常会取消此计时器 我知道急切的Singleton特性“.asEagerSi

在与温莎城堡(.NET)进行了大量工作后,我对谷歌Guice还是个新手

我希望在Google Guice中实现类似于Windsor Castle Startable Facility()的功能

这意味着一旦绑定了我的singleton服务并且满足了所有依赖项,injector就会自动创建它的实例

我想在创建服务时调用start()方法,在应用程序关闭时调用stop()方法。例如,start()将初始化计时器,stop()通常会取消此计时器

我知道急切的Singleton特性“.asEagerSingleton()”但我能想到它的一些问题:

(1) 如果我在服务中进行方法注入,则在设置方法注入依赖项之前调用服务的构造函数。因此,我可能无法在施工期间充分利用该服务

(2) 没有自动关机功能。我必须在应用程序关闭逻辑中手动获取服务实例,并调用stop()方法。更糟糕的是,如果我有很多这样的服务,我必须根据交叉依赖关系显式地管理关闭顺序


有什么建议吗?

我建议您试试,它有类路径扫描和自动绑定、生命周期管理、配置到字段映射、字段验证和并行对象预热。

我建议您试试,它有类路径扫描和自动绑定、生命周期管理、配置到字段映射、,现场验证和并行对象预热。

在gwizard中试用
gwizard服务
模块:


这为Guava服务提供了少量的粘合剂,因此很容易添加并行启动、执行和关闭的服务。

尝试gwizard中的
gwizard服务
模块:

这为Guava服务提供了少量的粘合剂,因此很容易添加并行启动、执行和关闭的服务。

我找到了LifeGycle(),它可以帮助管理注入对象的生命周期。我将尝试一下,我找到了LifeGycle(),它应该有助于管理注入对象的生命周期。我要试一试。