如何从两个不同的 IOC 容器中解析单例实例 [关闭]
Posted
技术标签:
【中文标题】如何从两个不同的 IOC 容器中解析单例实例 [关闭]【英文标题】:How to resolve Singleton instance from two different IOC Containers [closed] 【发布时间】:2017-12-07 04:18:46 【问题描述】:我是 IOC 新手,我正在构建一个使用 IOC 容器的应用程序,同时讨论我们决定的架构,每个模块将有两个程序集,一个用于所有模块级工作,不暴露在该模块之外,一个与公开访问我们想要公开的功能。
我的问题是我需要创建两个 IOC 容器,一个在 APP 级别,一个在模块级别,并且有一个单例实例,我想向两者注册,但是当我解决它们时,两个类的实例都在两者上创建有没有办法只获取一个实例。
一种方法是创建一个 Singleton 类并禁止生成另一个实例,但我认为会删除 IOC 的概念是否有任何其他方法可以仅在两个 IOC 容器之间解析单例实例。
谢谢
【问题讨论】:
【参考方案1】:我是 IoC 的新手,前几天我才明白这个概念的必要性。但是,从您的情况来看,为什么不只依靠在一个容器中注册单例,而另一个从您注册的容器中解析。 这个解决方案是否也打破了 IoC 的概念?如果这不是您搜索的答案,我很抱歉。我正在学习。
【讨论】:
是的,这似乎是一个很好的解决方案,感谢您的建议。 不客气 :) 。如果您选择解决方案,请将其标记为已接受的答案,以便其他人可以使用相同的解决方案。以上是关于如何从两个不同的 IOC 容器中解析单例实例 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
Spring IOC 容器源码分析 - 创建单例 bean 的过程