@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”)设置为原型作用域; 

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