Spring之 RefreshScope探秘(二)

2021-09-28 14:17:05 字數 1604 閱讀 7599

contextrefresher:refresh()的呼叫

public

synchronized set

refresh()

public

synchronized set

refreshenvironment()

分析如下:

觸發refresh事件

1.refreshendpoint

@endpoint

(id =

"refresh"

)public

class

refreshendpoint

@writeoperation

public collection

refresh()

}

配合spring-boot-actuator使用,只需要傳送乙個針對refresh路徑的post請求即可,至於與git結合自動重新整理也是這個原理,在修改配置檔案提交後通過webhook傳送乙個post請求給相關伺服器,以達到動態重新整理的目的

2.spring-cloud-bus之refreshlistener

public

class

refreshlistener

implements

@override

public

void

}

@endpoint

(id =

"bus-refresh"

)// todo: document new id

public

class

refreshbusendpoint

extends

abstractbusendpoint

@writeoperation

public

void

busrefreshwithdestination

(@selector string destination)

@writeoperation

public

void

busrefresh()

}

這個跟refreshendpoint基本一致,只是多了個帶引數的介面

3.refresheventlistener

public

class

refresheventlistener

implements

@override

public

boolean

supportseventtype

(class<

?extends

> eventtype)

@override

public

void

else

if(event instanceof

refreshevent)}

public

void

handle

public

void

handle

(refreshevent event)

}}

Spring全家桶之spring基礎

於 15個經典的spring面試常見問題 spring模組?談談自己對於 spring ioc 和 aop 的理解 spring aop 和 aspectj aop 有什麼區別?spring 中的 bean 的作用域有哪些?spring 中的單例 bean 的執行緒安全問題了解嗎?spring 中的...

Spring 之Spring 事務傳播行為

支援當前事務的情況 transactiondefinition.propagation required 如果當前存在事務,則加入該事務 如果當前沒有事務,則建立乙個新的事務。transactiondefinition.propagation supports 如果當前存在事務,則加入該事務 如果當...

Spring開發基礎之Spring事務管理

spring提供的事務管理 spring提供的事務管理可以分為兩類 程式設計式的和宣告式的。程式設計式的,比較靈活,但是 量大,存在重複的 比較多 宣告式的比程式設計式的更靈活。傳統使用jdbc的事務管理 以往使用jdbc進行資料操作,使用datasource,從資料來源中得到connection,...