java - 启动依赖服务的设计模式

标签 java design-patterns dependency-injection guice

假设我们有一个服务,它依赖于一组明确的其他服务可用并启动,然后才能初始化和启动该服务。通过 google guice 大量使用 DI,我们使服务本身与其所依赖的具体服务分离。但谁该负责

  1. 正在获取依赖服务列表?
  2. 确保它们在注入(inject)当前服务时处于正确的状态?

定义 guice 模块来列出依赖的服务似乎是一种好方法,显然可以在每种特定情况下编写代码以确保启动顺序 - 但是对于此类问题是否有任何既定/通用的设计模式?

最佳答案

您可能想查看HK2 Run Level Service 。可以将 HK2 运行级别服务与 Guice Bridge 结合使用。实现Guice中的运行级服务。

RunLevel 服务允许您拥有仅在系统达到特定状态后才启动的服务,而不必在代码中显式列出所有依赖项(可能只是功能依赖项,而不是 java 级别依赖项) .

关于java - 启动依赖服务的设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22034554/

相关文章:

java - 多参数方法使用什么模式?

java - 道。 JDBC。在哪里放置连接对象?

php - Symfony 控制台应用程序 : dependency injection

java - 从 Californium CoAP 客户端检索观测值

java - Apache CXF 拦截器覆盖内容类型

java - 在 java.util.Set 变量的 Spring @Value 中将默认值设置为 null

python - 博格设计模式

swift - SwinjectStoryboard 容器解析不同的对象(实例)

c# - 为 MVC 中的每个请求创建和销毁的 Controller 实例 - WebAPI - 要注入(inject)的依赖范围是什么?

java - UML 图中的依赖关系