我尝试通过Trait @Autowire bean列表,我收到错误:
通过带有[scala.collection.immutable.List]类型的索引0的构造函数参数表示的不满意的依赖性::找不到依赖的[scala.collection.immutable.List]类型的限定bean:期望至少有1个符合条件的bean作为此依赖关系的autowire候选者。依赖注释:{};嵌套异常是org.springframework.beans.factory.NoSuchBeanDefinitionException:没有为依赖项找到[scala.collection.immutable.List]类型的限定bean:期望至少有一个bean可以作为此依赖项的autowire候选者。
可以像Java一样吗?在我的Scala代码下面:
trait ProductDataProvider {
def collect()
}
@Component
class SomeProvider() extends ProductDataProvider {
override def collect(): Unit = ...
}
@Component
class ProductDataSourceFactory @Autowired()(providers: List[ProductDataProvider])() {
def get(source: ProductDataSource.Value): ProductDataProvider = ...
}
如果你指出我的方向,我会很高兴的。
答案 0 :(得分:2)
Spring是一个Java框架,它不能与Scala集合一起使用,将scala.collection.immutable.List
类的用法替换为要注入bean列表的地方的java.util.List
。