大多數spring開發人員都知道beanpostprocessor
和beanfactorypostprocessor
類。 前者啟用對新bean例項的更改,然後再使用它們,而後者則允許您修改bean定義-建立bean的元資料。 常見用例包括:
開箱即用的和自定義的後處理器足以滿足有關spring framework的大多數要求。
作為入門設計師,如何定義預設配置值? 顯然,不能通過spring@bean
方法來設定它。 讓我們以spring cloud sleuth啟動器為例進行分析:
關於配置,啟動程式更改預設日誌格式以顯示其他資訊(具體來說,跨度和跟蹤id,但這與發布無關)。 讓我們進一步**。
對於自動配置類,魔術始於spring cloud sleuth啟動程式jar的meta-inf/spring.factories
檔案:
# environment post processororg.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.level
和spring.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 另乙個林則徐
子孫若如我,留錢做什麼?賢而多財,財損其志 子孫不如我,留錢做什麼?愚而多財,益增其過。清 林則徐 音訊點我!有一本書,叫 林則徐家書 是林則徐寫給家裡人的信。林則徐大家都知道,先是欽差大臣,去廣東禁菸 鴉片戰爭失敗之後,又成了朝廷的替罪羊,被發配到新疆伊犁,這批家書基本上都是這個時候寫的。過去我們...