先有一个bean
@Bean
public Queue queueMessages() {
return new Queue("topic.messages");
}
后一个bean需要以前一个bean为参数
可以这样写:
@Bean
Binding bindingExchangeMessage(Queue queueMessage, TopicExchange exchange) {
return BindingBuilder.bind(queueMessage).to(exchange).with("topic.message");
}
形参的参数名必须和前一个bean的方法名一样,如果不一样,就会提示不能自动注入了.
一般的写法是以下通过Qualifier注解:
@Bean
Binding bindingExchangeMessages(@Qualifier("queueMessages")Queue queue , TopicExchange exchange) {
return BindingBuilder.bind(queue).to(exchange).with("topic.#");
}
@Bean注解在返回实例的方法上,如果未通过@Bean指定bean的名称,则默认与标注的方法名相同;
@Bean注解默认作用域为单例singleton作用域,可通过@Scope(“prototype”)设置为原型作用域;