免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

如何使用prepareRefresh()

這篇文章主要介紹“如何使用prepareRefresh()”,在日常操作中,相信很多人在如何使用prepareRefresh()問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”如何使用prepareRefresh()”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

創新互聯長期為成百上千家客戶提供的網站建設服務,團隊從業經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯網生態環境。為南沙企業提供專業的網站建設、成都網站設計,南沙網站改版等技術服務。擁有10余年豐富建站經驗和眾多成功案例,為您定制開發。

refresh()

這個方法主要做了一下這幾件事情:

  • 容器刷新前的準備

  • 初始化beanFactory,加載并解析配置

  • 設置beanFactory的屬性

  • BeanFactory創建完成后進行的后置處理工作

  • 執行BeanFactoryPostProcessor的方法

  • 注冊BeanPostProcessor

  • 初始化MessageSource組件

  • 初始化事件派發器

  • 子類重寫這個方法,在容器刷新的時候可以自定義邏輯

  • 給容器中將所有項目里面的ApplicationListener注冊進來

  • 初始化所有剩下的單實例bean

  • 完成BeanFactory的初始化創建工作,IOC容器就創建完成

這里我們先來看看容器刷新前做了些什么吧

prepareRefresh()

方法的源碼并不多,如下:

protected void prepareRefresh() {
	// Switch to active.
	// 這一句很明顯的獲取了系統當前時間,其實他的作用是來記錄當前的啟動時間的
	this.startupDate = System.currentTimeMillis();
	
	// 這兩個狀態的設置,前者關閉程序設置為false,后者運行標識設置為true
	this.closed.set(false);
	this.active.set(true);

	if (logger.isDebugEnabled()) {
		if (logger.isTraceEnabled()) {
			logger.trace("Refreshing " + this);
		}
		else {
			logger.debug("Refreshing " + getDisplayName());
		}
	}

	// Initialize any placeholder property sources in the context environment.
	// 目前還是一個空方法,應該后面會補充
	initPropertySources();

	// Validate that all properties marked as required are resolvable:
	// see ConfigurablePropertyResolver#setRequiredProperties
	// 校驗 xml配置文件
	getEnvironment().validateRequiredProperties();

	// Store pre-refresh ApplicationListeners...
	// 判斷刷新前的運用程序監聽集合是否為空,為空初始化applicationListeners監聽,不為空,則清空監聽器
	if (this.earlyApplicationListeners == null) {
		this.earlyApplicationListeners = new LinkedHashSet<>(this.applicationListeners);
	}
	else {
		// Reset local application listeners to pre-refresh state.
		this.applicationListeners.clear();
		this.applicationListeners.addAll(this.earlyApplicationListeners);
	}

	// Allow for the collection of early ApplicationEvents,
	// to be published once the multicaster is available...
	// 創建刷新前的事件集合
	this.earlyApplicationEvents = new LinkedHashSet<>();
}

這個方法prepareRefresh(),是在spring5.3之后加了程序,所以之前的版本是沒有辦法看到的。

就做了這幾件事情

  • 設置容器的啟動時間

  • 設置活躍狀態為true

  • 設置關閉狀態為false

  • 獲取Environment對象,并加載當前系統的環境到Environment中

  • 準備監聽器和事件的集合對象,默認為空

到此,關于“如何使用prepareRefresh()”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注創新互聯網站,小編會繼續努力為大家帶來更多實用的文章!

名稱欄目:如何使用prepareRefresh()
瀏覽地址:http://m.newbst.com/article48/gsochp.html

成都網站建設公司_創新互聯,為您提供云服務器外貿網站建設網站改版全網營銷推廣網站營銷關鍵詞優化

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

營銷型網站建設