Spring 學習筆記(二)——裝配 bean

一、自動裝配 bean

    配置文件自動裝配的四種方式:

1. byName

2. byType
    當 Spring 檢查到有多個 bean 符合指定類型時,設置 primary = "false" 表示該 bean 不是候選 bean,但是默認是 true

    還可以設置 autowire-candidate = “false”,以在自動裝配時忽略該 bean 作爲候選 bean

3. constructor

    constructor 與 byType 具有相同的侷限性

4. autodetect
    先通過構造器裝配,如果沒有匹配的 bean 則再通過 byType 匹配

5. 定義默認自動裝配

    默認的優先級低於 bean 本身設置的優先級

注:同一個 bean 配置中不能同時使用 constructor 裝配和 <constructor-arg>元素

二、使用註解裝配

1. 啓用註解

2. @Autowired
    @Autowired 註解不僅可以寫在 setter 方法上,屬性上,還可以寫在需要自動裝配 bean 的任意方法上,也包括構造方法。
    @Autowired(required = "false") 可以設置 required 屬性,指定自動裝配是否可選。
    @Qualifier("beanName") 指定自動裝配時選擇的 bean,當有多個 bean 滿足自動裝配時

    自定義 Qulifier 註解

3. @Inject
@Named 相當於 Spring 的 @Qulifier

4. 在註解中使用表達式
@Value 用來設置 String 類型和基本數據類型的值,可以結合 SpEL 使用

三、自動檢測需要註冊到 Spring 上下文中的 bean


1. 爲自動檢測標註 bean

2. 過濾掃描

四、使用 Spring 基於 Java 的配置

    使用 @Configuration 註解 Java 類相當於 XML 文件的 <beans> 元素, @Bean 相當於 XML <bean> 元素

@Configuration
public class Beans {
    @Bean
    public MyBean myBeanId(){
        MyBean mb = new MyBean();
        // 方法體內可以實現想要的邏輯,比如引用其它 bean
        mb.setMyBean2(myBeanId2);
        return mb;
    }

    @Bean
    public MyBean2 myBeanId2(){
        return new MyBean();
    }
}


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