<分区>
因此,我正在尝试学习使用 Spring Boot 的方法。我尝试了@Qualifier 和@Autowired,但它给了我以下错误:
Parameter 0 of constructor in io.cptpackage.springboot.bootdemo.BinarySearch required a single bean, but 2 were found:
即使我提供了正确的@Qualifier,它也不起作用,直到其中一个依赖项具有@Primary 注释,而且名称引用也不起作用我使用@Primary 或@Qualifier 你知道我是@Qualifier 有问题。代码很简单,如下。
@Component
public class BinarySearch {
// Sort, Search, Return the result!
@Autowired
@Qualifier("quick")
Sorter sorter;
public BinarySearch(Sorter sorter) {
super();
this.sorter = sorter;
}
public int search(int[] numbersToSearchIn, int targetNumber) {
sorter.sort(numbersToSearchIn);
return targetNumber;
}
}
第一个依赖:
@Component
@Qualifier("bubble")
public class BubbleSort implements Sorter {
@Override
public int[] sort(int[] targetArray) {
System.out.println("Bubble sort!");
return targetArray;
}
}
第二个依赖:
@Component
@Qualifier("quick")
public class QuickSort implements Sorter {
@Override
public int[] sort(int[] targetArray) {
System.out.println("Quick Sort!");
return targetArray;
}
}
另外,为什么按名称 Autowiring 不起作用?