Java @主批注不适用于JUnit测试

Java @主批注不适用于JUnit测试,java,spring,Java,Spring,我有一个Spring应用程序,我在JUnit测试中使用EasyMock进行模拟 我在下面定义了三个类(比如A、B和C) @Named(“A”) @初级的 公共A类{ } @命名为(“B”) 公共类B扩展了A{ } 公共C类{ @注入 private A;//它应该在这里注入一个实例,因为它被标记为primary } 公共类考试{ @嘲弄 二等兵A;//这里有个例外 } 当我在CTest类中运行测试时,我得到了一个错误 需要单个匹配bean,但找到了2:(A和B)。 为什么@primary注释在

我有一个Spring应用程序,我在JUnit测试中使用EasyMock进行模拟

我在下面定义了三个类(比如A、B和C)

@Named(“A”)
@初级的
公共A类{
}
@命名为(“B”)
公共类B扩展了A{
}
公共C类{
@注入
private A;//它应该在这里注入一个实例,因为它被标记为primary
}
公共类考试{
@嘲弄
二等兵A;//这里有个例外
}
当我在CTest类中运行测试时,我得到了一个错误 需要单个匹配bean,但找到了2:(A和B)。


为什么@primary注释在这里不起作用。

看起来您可能需要下面的配置

spring.main.allow-bean-definition-overriding=true
如果重写仅用于测试,则可以在测试配置文件中尝试


ref-

通常概要文件与Bean注释一起工作。你能试着用它来代替名字吗?和我刚才问的一个问题很相似。看看这是否有帮助: