当一个接口被两个service实现时,controller调用接口实现功能,会报错,提示开发者指定service,官方是建议你使用@Qualifier来区分的,但是,总有另一种方法实现的。
public interface Hi{ String hi(); }
@Service
public class Hi1 implements Hi{
@Override
public String hi() {
return "hi1";
}
}
@Service
public class Hi2 implements Hi{
@Override
public String hi() {
return "hi2";
}
}
此时没指定具体的接口实现类,spring会报错,但是只要将Hi2改成
@Service
@Primary
public class Hi2 implements Hi{
@Override
public String hi() {
return "hi2";
}
}
命令行就会输出
hi2