Spring Boot的另乙個後處理器

2021-10-06 23:30:26 字數 1605 閱讀 4078

大多數spring開發人員都知道beanpostprocessorbeanfactorypostprocessor類。 前者啟用對新bean例項的更改,然後再使用它們,而後者則允許您修改bean定義-建立bean的元資料。 常見用例包括:

開箱即用的和自定義的後處理器足以滿足有關spring framework的大多數要求。

作為入門設計師,如何定義預設配置值? 顯然,不能通過spring@bean方法來設定它。 讓我們以spring cloud sleuth啟動器為例進行分析:

關於配置,啟動程式更改預設日誌格式以顯示其他資訊(具體來說,跨度和跟蹤id,但這與發布無關)。 讓我們進一步**。

對於自動配置類,魔術始於spring cloud sleuth啟動程式jar的meta-inf/spring.factories檔案:

# environment post processor

org.springframework.boot.env.environmentpostprocessor=\

org.springframework.cloud.sleuth.autoconfig.traceenvironmentpostprocessor

介面的定義如下所示:

public

inte***ce

environmentpostprocessor

像這樣的實現:

public

class

traceenvironmentpostprocessor

implements

environmentpostprocessor

private

void

addorreplace

(mutablepropertysources

propertysources

,map

<

string

,object

>

map)}}

}if(target

==null)if

(!propertysources

.contains

(property_source_name))}

}

可以看到,該實現將把logging.pattern.levelspring.aop.proxytargetclass屬性(具有相關值)新增到環境中(如果尚不存在)。 如果這樣做,它們將被新增到列表的底部。

使用@conditional,啟動程式可以在自動配置類中提供預設bean,而使用environmentpostprocessor,它們也可以提供預設屬性值。 在設計您自己的啟動器時,將兩者結合使用可以為在配置spring boot體驗方面提供出色的約定大有幫助。

更進一步:環境後處理器

翻譯自:

另乙個自己

人們常說 人貴有自知之明 可是話說回來,又有幾人能真正的了解自己呢?我覺得我就是乙個很沒有自知之明的人。生於89年的我,到了今年的生日就28周歲了。都說三十而立,正所謂成家立業,可以回過頭發現自己可以稱得上 一無是處,一無所有 曾幾何時,還是鄰居家叔叔阿姨教育孩子的榜樣 曾幾何時父母因為自己考個好大...

呼叫另乙個Activity

1 建立主activity 注意通過權重來分配尺寸的方式 元件1 android layout width 0dp android layout weight 1 元件2 android layout width wrap content 2 在主類中指定onclick所對應的sendmessage...

08 另乙個林則徐

子孫若如我,留錢做什麼?賢而多財,財損其志 子孫不如我,留錢做什麼?愚而多財,益增其過。清 林則徐 音訊點我!有一本書,叫 林則徐家書 是林則徐寫給家裡人的信。林則徐大家都知道,先是欽差大臣,去廣東禁菸 鴉片戰爭失敗之後,又成了朝廷的替罪羊,被發配到新疆伊犁,這批家書基本上都是這個時候寫的。過去我們...