结论:
如果参数中的实例只有一个(按type),则不需要加任何注解即可注入(感觉和构造函数注入的方式雷同,唯一bean的话就不需要再使用注解@qualifier等 标示了);
如果在spring上下文中有多个,则需求增加@Qualifier注解
/**
* 声明队列交换机等
* @param connectionFactory
* @return
*/
@Bean
public RabbitAdmin rabbitAdmin(ConnectionFactory connectionFactory) {
System.out.println(String.format("-----------getRabbitAdmin:%s", connectionFactory.hashCode()));
return new RabbitAdmin(connectionFactory);
}
如上,有参数connectFactory,若spring容器中只有一个ConnectionFactory 类型的bean,则不论参数取名为何都是按类型取bean ConnectionFactory 为参数,若有多个则参数取名必须为多个bean中的一个,否则报错。