先有一個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”)設置爲原型作用域;