【发布时间】:2020-03-23 08:52:33
【问题描述】:
我将 Spring-DI 注释替换为 Quarkus-CDI 注释。
虽然应用程序正常启动,并且到目前为止没有检测到功能丢失,但由于多个(大部分是重复的)错误导致测试无法运行,例如:
[..] com.fasterxml.jackson.databind.ObjectMapper 类型和限定符的模糊依赖项 [@Named(value = "objMapper")] - java 成员:com.proj.repository.MyDao#() - 在 CLASS bean 上声明 [types=[com.proj.repository.MyElasticRepository, com.proj.repository.DomainDao, java.lang.Object, com.proj.repository.MyDao, com.proj.repository.ElasticRepository], qualifiers= [@Default, @Any], 目标=com.proj.repository.MyDao] - 可用的豆子:
- 生产者方法 bean [types=[java.io.Serializable, com.fasterxml.jackson.core.ObjectCodec, java.lang.Object, com.fasterxml.jackson.databind.ObjectMapper, com.fasterxml。 jackson.core.Versioned, com.fasterxml.jackson.core.TreeCodec], qualifiers=[@Named(value = "objMapper"), @Default, @Any], target=com.fasterxml.jackson.databind.ObjectMapper getMapper( ),声明Bean=com.proj.config.JacksonConfig]
- 生产者方法 bean [types=[java.io.Serializable, com.fasterxml.jackson.core.ObjectCodec, java.lang.Object, com.fasterxml.jackson.databind.ObjectMapper, com.fasterxml。 jackson.core.Versioned, com.fasterxml.jackson.core.TreeCodec], qualifiers=[@Named(value = "objMapper"), @Default, @Any], target=com.fasterxml.jackson.databind.ObjectMapper getMapper( ),声明Bean=com.proj.config.JacksonConfig]
(1) 请注意,这两个粗体项完全相同。
(2) 很少有其他类型会产生相同的错误(当然是调整后的类型)
映射器定义为:
public class JacksonConfig implements SerializerAdapter<ObjectMapper> {
...
@Named("objMapper")
@Produces
public ObjectMapper getMapper() {
return ...
}
}
您能解释一下为什么会这样吗?
我该如何解决这个问题才能运行测试?
你能建议一种方法来解决假设的两个错误声明完全相同的错误吗?
【问题讨论】: