当前位置: 首页 > 知识库问答 >
问题:

注释指定的bean名称与现有的、不兼容的bean def冲突

袁波
2023-03-14

我在一些Spring bean定义上遇到了问题。我的main()方法加载了两个上下文xml文件,它们几乎都只包含一个标记。当我的main方法启动时,我从Spring中得到以下错误:

Caused by: org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'converterDAO' for bean class [my.package.InMemoryConverterDaoImpl] conflicts with existing, non-compatible bean definition of same name and class [my.other.package.StaticConverterDAOImpl]
@Repository("converterDAO")
public class StaticConverterDAOImpl implements ConverterDAO {
...
}
...
private @Autowired @Qualifier("converterDAO") ConverterDAO converterDAO;
...

-迈克

共有1个答案

有权
2023-03-14

在XML文件中,有一系列声明,您可以用新定义重写以前的定义。当您使用注释时,没有before或after的概念。所有的豆子都在同一水平。您定义了两个名称相同的bean,Spring不知道应该选择哪一个。

给它们一个不同的名称(例如staticConverterDAO、inMemoryConverterDAO),在Spring XML文件中创建一个别名(例如theConverterDAO),并在注入转换器时使用这个别名:

@Autowired @Qualifier("theConverterDAO")
 类似资料:
  • 在Proguard混淆之后,我得到以下错误: 从ServletContext资源[/WEB-INF/ApplicationContext.XML]解析XML文档时出现意外异常;嵌套异常是java.lang.IllegalStateException:注释指定的bean类[com.company.project.b.a.a]的bean名“a”与现有的同名和类[com.company.project.

  • 我在Spring boot应用程序中不断遇到冲突BeanDefinitionException错误。我不完全确定如何解决这个问题,我有几个带注释的类来帮助设置Thymeleaf、Spring Security和Web。为什么应用程序尝试设置homeController两次?(它在哪里尝试这样做?) 错误是: 我的spring boot主应用程序初始值设定项: 我的数据库配置文件: 我的Thymel

  • 我使用的是Spring Boot1.3,我有下面的配置类: 当我试图按名称注入下面的bean之一时,它抛出:没有定义[java.text.SimpleDateFormat]类型的合格bean:预期的是单个匹配bean,但找到了2:dateAndTimeFormater,DateFormater。 如有任何建议,将不胜感激?

  • 问题内容: 使用基于注释的配置(等)是否可以实现相同的bean继承? http://docs.spring.io/spring/docs/4.1.0.BUILD-SNAPSHOT/spring-framework- reference/htmlsingle/#beans-child-bean- definitions 问题答案: java config中没有抽象bean的概念,因为Java语言已经

  • 我已经用自定义注释注释了Spring bean,但似乎Spring在创建bean后删除了我的自定义注释。 第二步不行,我的自定义注释丢失了。(可能是到期的代理文件) 我的豆子 我的一个自定义注释的示例 findAndDoStuffWithAnnotatedThings Bean中出错的内容被传递到一个类,在该类中,我的自定义注释得到验证,但我的验证程序找不到任何注释。(Util使用isAnnota