java - 如何解决maven项目中两个同名bean的冲突?

标签 java spring maven

假设我有一个 Maven 项目 A 和项目 B,并且项目 B 我将其作为 jar 添加到项目 A 中,当我尝试运行项目 A 时,它给我错误“bean name "xyz"conflicts与现有的、不兼容的 bean 定义相同的名称和类

所以任何人都可以解决这个问题,忽略项目 B 的 bean“xyz”并仅运行项目 A 的“xyz”bean,或者是否有任何注释或类似的东西?

最佳答案

使用@Primary配置类上bean定义的注释

@Bean(name = "beanOnA")
@Primary
public YourInterface yourBeanOnProjectA(){
    return new YourClass("Bean on Project A");
}

Autowiring bean 时,使用限定符注释指定 bean 名称。

@Autowired
@Qualifier("beanOnA")
YourInterface yourInterface;

关于java - 如何解决maven项目中两个同名bean的冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43840188/

相关文章:

java - Spring MVC 404 未找到

java - 将我们自己的对象保存为 TreeMap 中的键

spring - 如何使用 Spring Data JPA 的审计功能在历史表上指示生效日期?

java - 我的代码无限循环并且不再提示用户

java - 使用 Spring @Query 注解进行不区分大小写的查询

java - 使用@ControllerAdvice 和@ResponseStatus 更改响应状态代码

java - Eclipse无法加载资源目录(构建路径问题)

java - 文件未添加到 docker 工作区

java - 从 UUID.toString() 重新创建 UUID

java - JBoss AS7.1.1 远程处理