用于异步依赖项初始化的Java库

时间:2014-08-12 18:21:57

标签: java asynchronous dependencies dependency-management

我正在开发一个用Java编写的项目,它有一个内部编写的依赖项初始化系统。我一直在寻找一个可以管理它的强大的第三方库,所以我们不必对它进行维护。到目前为止,我的搜索并没有太大帮助。大多数结果都反映了Spring,但我认为这并不能满足我们的需求。

我们需要的东西:

  • 维护系统中依赖关系的“初始化状态”。这意味着如果我称之为每个“服务”已经实例化,但可以是未初始化,初始化,初始化。其中大多数是单身人士。
  • 维护每个服务的依赖关系图,并且只在初始化所有依赖关系时尝试初始化。
  • 最重要的是,这必须允许异步初始化。调用服务进行初始化时,库不应期望在调用init()后执行此操作,但允许服务回调。这是因为大多数服务都是在初始化时调用我们的Web服务。
  • 系统需要支持未初始化。例如。如果我们失去与Web服务的连接,或者您的会话因其中一个服务而到期,我们需要能够将其设置为未初始化,使依赖于它的所有内容无效,并排队等待重新初始化。
  • 系统应该允许系统处于当前状态,因此我们可以跟踪初始化的内容以及取决于什么的内容。

我已经查看了Spring和Guice,从我所知道的,它们将无法工作,因为它们不允许您的依赖项处于中间初始化状态,并且如果您要求它将阻止该线程对于未初始化的对象,直到它完全构造。我也不确定他们是否允许未初始化。

我完全清楚这可能是非常具体的,可能是一个奇怪的系统(它已经很老了),所以我希望可能没有内部解决方案的替代方案。

0 个答案:

没有答案