Spring2 5中bean定義的繼承

2021-04-27 23:01:51 字數 659 閱讀 4160

在bean定義中包含了大量的配置資訊,其中包括容器相關的資訊(比如初始化方法、靜態工廠方法等)以及構造器引數和屬性值。子bean定義就是從父bean定義繼承配置資料的bean定義。它可以覆蓋父bean的一些值,或者新增一些它所需要的值。使用父子bean定義的方式可以節省很多的輸入工作。實際上,它是一種模板形式。

當使用beanfactory進行程式設計時,子bean定義是用childbeandefinition類來表示的。大多數bean的定義只是以類似xmlbeanfactory中的宣告方式去配置bean定義。使用基於xml的方式配置元資料時,給bean的「parent」屬性指定值,意味著子bean定義的宣告。

如果子bean沒有指定class屬性,那麼預設情況下使用父bean的class屬性。當然也可以覆蓋它。後一種情況下,子bean的class屬性值必須同父bean相容,也就是說它必須接受父bean的屬性值。

乙個子bean的定義可以從父bean定義中繼承構造器引數、屬性值以及覆蓋父bean的方法。並且可以有選擇增加新值,如果指定了init-method、destory-method或者靜態fatory-method方法,它們會覆蓋父bean的配置。

而依賴、自動裝配模式、依賴檢查、singleton、作用域和延遲初始化都總是從子bean定義中得到。

注意: 使用abstract屬性顯示的將父bean定義成抽象的。

Spring2 5 註解介紹

註解介紹 controller service autowired requestparam modelattribute cacheable cacheflush resource postconstruct predestroy repository component 不推薦使用 scope ...

Spring2 5 容器擴充套件點

spring容器被設計成可擴充套件的,可以通過plugin各種整合介面實現來進行擴充套件。用beanpostporcesser定製bean 此介面中定義了幾個 方法,實現該介面可實現自定義的例項化邏輯 依賴解析邏輯等。如果配置了多個beanpostprocesser,可以通過 order 屬性控制b...

Spring2 5那些事之 AOP

在日常開發中經常需要在 中加入一些記錄使用者操作日誌的log語句,比如誰在什麼時間做了什麼操作,等等。把這些對於開發人員開說無關痛癢的 寫死在業務方法中實在不是一件很舒服的事情,於是aop應運而生。spring對aop的支援有以下4種情況 1.基於 的aop 2.aspectj 3.純pojo 4....