如何在分布式系统中实现DI,因为无法在每个分布式组件中嵌入整个DI框架。
答案 0 :(得分:5)
在分布式系统中,每个自治组件本身都是一个单独的应用程序,因此应该有每个自己的组合根,您可以在其中连接组件。如果您使用DI容器,则应使用Register Resolve Release模式。
由于每个组件本身就是一个应用程序,它们甚至不必使用相同的容器(甚至是同一个平台)。
答案 1 :(得分:1)
嗯,如果您愿意,可以分发DI平台和每个组件。有些平台集成了DI,因此您可以或多或少地将其作为平台的一项功能。
然而,更好的方法是使用平台而不是依赖注射。将方法调用分发给其他分布式组件,您可以获得可扩展性(尽管可能会失去性能)和设计中的简单性。
答案 2 :(得分:0)
如果DI框架不存在那么你不能直接/间接地引用它,如果它不存在...如果你想在你的分布式组件中使用DI它必须是本地可用的,因为远程DI不会感觉因为服务本身通常不可序列化,因为这个概念没有意义。