默認(rèn)情況下,SpringCloud Config使用的是遠(yuǎn)程的倉庫,所以默認(rèn)要配置uri
創(chuàng)新互聯(lián)建站10多年成都企業(yè)網(wǎng)站建設(shè)服務(wù);為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁設(shè)計(jì)及高端網(wǎng)站定制服務(wù),成都企業(yè)網(wǎng)站建設(shè)及推廣,對塑料袋等多個領(lǐng)域擁有豐富的網(wǎng)站制作經(jīng)驗(yàn)的網(wǎng)站建設(shè)公司。如果不想使用遠(yuǎn)程倉庫,而使用本地倉庫,需要做以下配置:
spring.profiles.active=native
spring.cloud.config.server.native.search-locations=file:D:/git/myconfig
注意3點(diǎn):
1. 使用spring.profiles.active指定要使用本地倉庫,而不是其他屬性.注意這個屬性一般的作用是激活哪一套配置,在config項(xiàng)目中用于指定是否使用本地倉庫
2. 不在使用uri,username,password這些遠(yuǎn)程倉庫才需要的,而是使用search-locations這個用于指定尋找本地文件夾的屬性
3. 倉庫路徑前一定要帶上file:前綴,否則識別不了
4. 客戶端程序不用再像遠(yuǎn)程那樣指定使用倉庫哪個分支,即: spring.cloud.config.label無效了,無論是否配置該屬性,都不再使用該屬性.
總結(jié):
1. 通過在config項(xiàng)目中指定spring.profiles.active=native來指定使用本地配置倉庫
2. 指定配置路徑時(shí), 前面要加上file:
3. 不需要再指定uri,username,password,label這些屬性
今天偶然在網(wǎng)頁留言上發(fā)現(xiàn),有人說用@Autowired
可以注入bean到聲明的map中,當(dāng)時(shí)我還不信,怎么可能呢,@Autowired只用過向定義的類型中注入bean,map跟bean非親非故,怎么會注入那些實(shí)例,于是試驗(yàn)了一下,果然靈驗(yàn)
@Autowired
private Mapmap = new HashMap<>();// 向map中注入所有類型為BizService類型的bean,其中鍵為bean的名稱,值為bean的實(shí)例.
像上面這些注入一個map,類型必須是這樣: Map
這樣的話,這個map就會將context中所有類型為T的bean都注入到這個map中了.
分析一下原理,也是很容易實(shí)現(xiàn)的,只不過以前沒朝這方面想而已
在context啟動過程中, 會加載所有的bean到bean工廠中,如果發(fā)現(xiàn)有用@Autowired標(biāo)記的Map類型,那就注入
注入的時(shí)候,看map的值類型,然后遍歷所有的bean,根據(jù)類型放進(jìn)去就行了.
有了這個東西,以后遇到自定義的bean,都可以自動放入單獨(dú)的map中,隨時(shí)供自己調(diào)用和處理了,很是方便.
同理: List也可以根據(jù)bean的類型自動注入.原理同map.
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。