Spring:两个具有相同名称的不同bean
两个不同名字的豆子给我带来了一个例外 异常消息:Spring:两个具有相同名称的不同bean,spring,spring-boot,Spring,Spring Boot,两个不同名字的豆子给我带来了一个例外 异常消息: *************************** APPLICATION FAILED TO START *************************** Description: The bean 'tipusFonsSql', defined in class path resource [net/gencat/clt/arxius/connector/config/SqlGiacTxtResourceLoader.class
***************************
APPLICATION FAILED TO START
***************************
Description:
The bean 'tipusFonsSql', defined in class path resource [net/gencat/clt/arxius/connector/config/SqlGiacTxtResourceLoader.class], could not be registered. A bean with that name has already been defined in class path resource [net/gencat/clt/arxius/connector/config/SqlGiacImgResourceLoader.class] and overriding is disabled.
它告诉我classSqlGiacTxtResourceLoader
和classSqlGiacImgResourceLoader
定义了两个同名的bean
然而,它们是不同的。我的意思是:
进入SqlGiacImgResourceLoader
@Bean
@GiacImg@TipusFonsQ
公共字符串tipusFonsSql(){
//...
}
进入SqlGiacTxtResourceLoader
@Bean
@GiacTxt@TipusFonsQ
公共字符串tipusFonsSql(){
//...
}
如您所见,一个是带有@GiacImg
注释的“@aulified”
,另一个是ony by@GiacTxt
有什么想法吗?你得这样命名
@Bean(name = "GiacImg TipusFonsQ")
public String tipusFonsSql() {
//...
}
及
为了避免bean冲突,有两种方法可以解决这个问题(哈哈,可能有很多,但我知道下面两种方法):------ 第一种方法 更改bean名称:--- 第二种方法 在application.properties中记下以下键:--
注意:-在您的情况下,您还可以更改方法名称对于不同的bean,您不能有相同的id。所以这行不通。
@Bean(name = "GiacTxt TipusFonsQ")
public String tipusFonsSql() {
//...
}
@Bean(name = "custome bean name")
spring.main.allow-bean-definition-overriding=true