SpringCloud 環(huán)境變化

2023-06-06 17:10 更新

應(yīng)用程序偵聽(tīng)?EnvironmentChangeEvent?并以幾種標(biāo)準(zhǔn)方式對(duì)更改做出反應(yīng)(用戶(hù)可以通過(guò)常規(guī)方式將其他?ApplicationListeners?作為?@Beans?添加)。觀察到?EnvironmentChangeEvent?時(shí),它會(huì)列出已更改的鍵值,并且應(yīng)用程序?qū)⑦@些鍵值用于:

  • 重新綁定上下文中的任何?@ConfigurationProperties? beans
  • 為?logging.level.*?中的所有屬性設(shè)置記錄器級(jí)別

請(qǐng)注意,默認(rèn)情況下,Config Client不輪詢(xún)?Environment?中的更改。通常,我們不建議您使用這種方法來(lái)檢測(cè)更改(盡管您可以使用?@Scheduled?注釋對(duì)其進(jìn)行設(shè)置)。如果您具有橫向擴(kuò)展的客戶(hù)端應(yīng)用程序,則最好向所有實(shí)例廣播?EnvironmentChangeEvent?,而不是讓它們輪詢(xún)更改(例如,使用Spring Cloud Bus)。

只要您可以實(shí)際更改?Environment?并發(fā)布事件,?EnvironmentChangeEvent?就涵蓋了一大類(lèi)刷新用例。請(qǐng)注意,這些API是公共的,并且是核心Spring的一部分)。您可以通過(guò)訪(fǎng)問(wèn)?/configprops?端點(diǎn)(正常的Spring Boot Actuator功能)來(lái)驗(yàn)證更改是否綁定到?@ConfigurationProperties? beans。例如,?DataSource?可以在運(yùn)行時(shí)更改其?maxPoolSize?(由Spring Boot創(chuàng)建的默認(rèn)?DataSource?是?@ConfigurationProperties? bean)并動(dòng)態(tài)地增加容量。重新綁定?@ConfigurationProperties?并不涵蓋另一類(lèi)用例,在這種情況下,您需要對(duì)刷新有更多的控制,并且需要對(duì)整個(gè)?ApplicationContext?進(jìn)行原子更改。為了解決這些問(wèn)題,我們有?@RefreshScope?。


以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)