我开始学习Spring并遇到了Spring的一个特性 - overriding spring bean declared in one xml config in another config。
我不明白这个功能在哪里有用。这似乎是不合逻辑的,因为相同的容器将使用两个不同的xml配置,即使有两个具有相同ID的bean,而不是报告歧义,它默认为最后一个。
是否存在实际可行的实际情况?这是好习惯吗?
答案 0 :(得分:1)
有理由说明这可能对实例有用
测试时,您可以选择覆盖1个或多个bean。例如,DataSource
您可能不想测试数据库的生产实例。但也许是内存中的一个或一个专门用于测试。为此,您可以覆盖DataSource
bean。
您可以为库提供启动配置,并允许用户覆盖某些组件或让它们实现接口。这样的一个示例是不同的Spring组合项目如何工作(Spring Security,Spring Batch)及其默认配置。
此外,当覆盖bean时,spring会在启动应用程序时记录此信息。