假设我们有一个服务,它依赖于一组明确的其他服务可用并启动,然后才能初始化和启动该服务。通过 google guice 大量使用 DI,我们使服务本身与其所依赖的具体服务分离。但谁该负责
- 正在获取依赖服务列表?
- 确保它们在注入(inject)当前服务时处于正确的状态?
定义 guice 模块来列出依赖的服务似乎是一种好方法,显然可以在每种特定情况下编写代码以确保启动顺序 - 但是对于此类问题是否有任何既定/通用的设计模式?
最佳答案
您可能想查看HK2 Run Level Service 。可以将 HK2 运行级别服务与 Guice Bridge 结合使用。实现Guice中的运行级服务。
RunLevel 服务允许您拥有仅在系统达到特定状态后才启动的服务,而不必在代码中显式列出所有依赖项(可能只是功能依赖项,而不是 java 级别依赖项) .
关于java - 启动依赖服务的设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22034554/