@Bean的一種用法

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章