Spring bean 容器是否?命令消除重复的容器?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
它不会消除重复的“容器”,但会消除重复的 bean 定义。因此,D 中的 bean 只会在生成的 bean 工厂中创建一次。不过,你会看到一张充满警告的脸。
这是最好避免的事情。与另一个具有相同 ID 的 Bean 定义将“隐藏”该 Bean 定义,无论该 Bean 的类型和属性是否相同。哪一个被“隐藏”取决于声明顺序。这是危险的,所以 Spring 会警告你。
It doesn't eliminate duplicate "containers", but it will eliminate duplicate bean definitions. So the beans in D will only be created once in the resulting bean factory. You'll get a face full of warnings about it, though.
It's something best avoided. One bean definition which has the same ID as another will "hide" that bean definition, regardless of whether or not the type and properties of that bean are the same. Which one gets "hidden" depends on the declaration order. It's dangerous, and so Spring will warn you about it.
我在 spring-context-import /github.com" rel="nofollow noreferrer">GitHub 确认 skaffman 的 答案:
正如 skaffman 预测的那样,请注意“Overiding beanDefinition for bean 'd'”消息,该消息标记了重复的 bean“d”。
I created example project spring-context-import on GitHub to confirm skaffman's answer:
As skaffman predicted, notice the "Overiding bean definition for bean 'd'" message which flags the duplicate bean "d".