@service("syncTaskServiceAImpl")注解用于给SyncTaskServiceAImpl对象(Bean)取一个别名,用于与其他的实现类对象作区分。
假如SyncTaskServiceAImpl和SyncTaskServiceBImpl都实现了接口SyncTaskService,
那么,
@Autowired
private SyncTaskService syncTaskService;
在装配的时候是指向SyncTaskServiceAImpl还是SyncTaskServiceBImpl呢?
此时,
@Autowired //默认根据类型查找
@Qualifier("syncTaskServiceAImpl")
private SyncTaskService syncTaskService;
就可以指定SyncTaskServiceAImpl为装配对象。
@Qualifier("XXX") 中的 XXX是 Bean 的名称,所以 @Autowired 和 @Qualifier 结合使用时,自动注入的策略就从 byType 转变成 byName 了;
@Qualifier(不能单独使用必须和@Autowired一起使用。