为什么在一个配置中声明的覆盖Spring bean在另一个配置中被允许?

禁食

我开始学习Spring,并遇到了一个在另一个配置中的一个xml配置中声明的,覆盖Spring的Spring bean的功能

我不知道此功能在哪里有用。这似乎是不合逻辑的,因为将使用两个不同的xml配置同一个容器,即使有两个具有相同ID的bean,也不会报告歧义,而是默认为最后一个。

有没有实际可行的实际方案?这是好习惯吗?

然后马库斯

有一些原因为什么这可能很有用

  • 测验
  • 开发组件库

测验

测试时,您可以选择覆盖1个或多个bean。例如,DataSource您可能不想针对数据库的生产实例进行测试。但是也许一个或一个专门用于测试的内存。为此,您可以直接覆盖DataSourcebean。

开发组件库

您可以为您的库提供一个初始配置,并允许用户覆盖某些组件或让他们实现接口。这方面的一个示例是不同的Spring产品组合项目(默认配置)如何工作(Spring Security,Spring Batch)。

同样,当覆盖bean时,spring会在应用程序启动时记录此信息。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Maven中,一个配置文件属性被另一个配置文件属性覆盖?

如何将 xml bean 引用到基于注解配置的另一个 bean

从另一个WAR继承Spring配置

使用来自Grails DSL的另一个Bean使用静态方法配置Spring Bean

为什么不允许覆盖方法中的参数类型不同(一个是原始类型,另一个是包装器)?

你为什么要允许从另一个调用一个构造函数?

在另一个库中配置ActorSystem

为什么一个事件的数据被另一个事件覆盖?

为什么一个变量的值似乎覆盖了另一个?

为什么一个结构指针不能被另一个结构指针声明

在配置spring boot中定义一个bean名称

为什么从另一个调用的函数不会显示在节点应用程序的配置文件输出中?

为什么要编译?在另一个函数中声明的函数

为什么我的 spring-cloud-stream 测试配置也在另一个类中启动了 rabbitMQ 侦听器?

如何强制在另一个bean之后创建一个Spring bean?

Spring将一个bean的属性值注入另一个bean

在另一个类中声明一个类的目的是什么?

C++:为什么在另一个函数中允许函数声明而不是函数定义?

在Java中,当一个接口扩展另一个接口时,为什么要在子接口中重新声明一个方法?

如何配置apache指向另一个服务器中的另一个索引?

实例的Java静态变量是否在另一个实例中被覆盖?

如何覆盖在另一个继承的类中被赋予值的变量

从另一个运行构建配置

从另一个Gradle项目的配置扩展

如何根据另一个进程配置ssis?

春季:从另一个bean访问bean属性

在Spring Boot中是否可以从另一个自动配置类中禁用一个自动配置类?

如何在Spring中在一个bean之后但另一个bean之前运行方法?

在Spring 3.0中如何将属性从一个bean注入另一个bean?