亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

基于application和bootstrap的加載順序及區(qū)別說明

 更新時間:2023年07月10日 10:18:40   作者:lei_dx  
這篇文章主要介紹了application和bootstrap的加載順序及區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

application和bootstrap的加載順序及區(qū)別

bootstrap.yml(bootstrap.properties)先加載

application.yml(application.properties)后加載

bootstrap.yml 用于應(yīng)用程序上下文的引導(dǎo)階段。

bootstrap.yml 由父Spring ApplicationContext加載。

父ApplicationContext 被加載到使用 application.yml 的之前。

bootstrap.yml

是系統(tǒng)級別的一些參數(shù)配置,這些參數(shù)一般是不變的。

application.yml 一般用來定義單個應(yīng)用級別的,如果搭配 spring-cloud-config 使用 application.yml 里面定義的文件可以實現(xiàn)動態(tài)替換。

使用Spring Cloud Config Server時,應(yīng)在 bootstrap.yml 中指定:

spring.application.name
spring.cloud.config.server.git.uri

注意:

一旦bootStrap.yml 被加載,則內(nèi)容不會被覆蓋,即便后期加載的application.yml的內(nèi)容標(biāo)簽與bootstrap的標(biāo)簽一致,application 也不會覆蓋bootstrap, 而application.yml 里面的內(nèi)容可以動態(tài)替換。

bootstrap.yml與application.yml執(zhí)行順序(原因:類加載器的先后順序)

結(jié)論:bootstrap.yml 先于 application.yml 加載

bootstrap.yml(bootstrap.properties)用來程序引導(dǎo)時執(zhí)行,應(yīng)用于更加早期配置信息讀取,如可以使用來配置application.yml中使用到參數(shù)等

application.yml(application.properties) 應(yīng)用程序特有配置信息,可以用來配置后續(xù)各個模塊中需使用的公共參數(shù)等。

bootstrap.yml 先于 application.yml 加載

應(yīng)用:當(dāng)使用 Spring Cloud Config Server 的時候

bootstrap.yml 中

spring.application.name: test
spring.cloud.config.name: testName
spring.cloud.config.uri: http://config1.spring-demo.test.com:8888

原因:類加載器的先后順序

負(fù)責(zé)加載class文件,class文件在文件開頭有特定的文件標(biāo)示,并且ClassLoader只負(fù)責(zé)class文件的加載,至于它是否可以運行,則由Execution Engine決定 

虛擬機(jī)自帶的加載器

1.啟動類加載器(Bootstrap)C++

2.擴(kuò)展類加載器(Extension)Java

3.應(yīng)用程序類加載器(AppClassLoader)Java  也叫系統(tǒng)類加載器,加載當(dāng)前應(yīng)用的classpath的所有類

4.用戶自定義加載器  Java.lang.ClassLoader的子類,用戶可以定制類的加載方式

注意java中反射的三種方法

1.通過Object類的getClass方法來獲取

java.lang.Object中定義有g(shù)etClass方法:public final Class getClass()所有Java對象都具備這個方法,該方法用于返回調(diào)用該方法的對象的所屬類關(guān)聯(lián)的Class對

2.用.class的方式

使用類名加“.class”的方式即會返回與該類對應(yīng)的Class對象。

3.使用Class.forName方法

Class有一個著名的static方法

forName:public static Class forName(String className) throws ClassNotFoundException

該方法可以根據(jù)字符串參數(shù)所指定的類名獲取與該類關(guān)聯(lián)的Class對象。

如果該類還沒有被裝入,該方法會將該類裝入JVM。

該方法聲明拋出ClassNotFoundException異常。

顧名思義,當(dāng)該方法無法獲取需要裝入的類時(例如,在當(dāng)前類路徑中不存在這個類),就會拋出這個異常。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java中ConcurrentHashMap和Hashtable的區(qū)別

    Java中ConcurrentHashMap和Hashtable的區(qū)別

    ConcurrentHashMap?和?Hashtable?都是用于在Java中實現(xiàn)線程安全的哈希表數(shù)據(jù)結(jié)構(gòu)的類,但它們有很多區(qū)別,本文就來詳細(xì)的介紹一下,感興趣的可以了解一下
    2023-10-10
  • 詳解Mybatis模板(已優(yōu)化)適合小白

    詳解Mybatis模板(已優(yōu)化)適合小白

    這篇文章主要介紹了Mybatis模板(已優(yōu)化)適合小白,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • MyBatis insert操作插入數(shù)據(jù)之后返回插入記錄的id

    MyBatis insert操作插入數(shù)據(jù)之后返回插入記錄的id

    今天小編就為大家分享一篇關(guān)于MyBatis插入數(shù)據(jù)之后返回插入記錄的id,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • 最新評論