Autowired默认是按类型自动注入,
当同一类型有多个子类时,可以按名字注入,
名字为子类名字的首字母小写。
public interface Animal {
void voice();
}
@Component
@Data
public class Cat implements Animal {
@Override
public void voice() {
System.out.println("cat....voice");
}
}
@Component
@Data
public class Dog implements Animal {
@Override
public void voice() {
System.out.println("dog....voice");
}
}
// 自动注入
@Autowired
private Animal dog;
如果类名会有变化,可以使用:@Qualifier
// 自动 注入
@Autowired
@Qualifier("myCat")
private Animal aaa;