<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                基于springboot的約定優于配置的原則,在多數情況下,啟動一個應用時,基本上無需做太多的配置,應用就能正常啟動。但在大部分開發環境下,添加額外配置是無所避免的,比如自定義應用端口號(比較在機器比較少的情況下,一臺機器還是需要部署多個應用的,當然利用docker的話,是可避免的,這是后話了)、mq的服務地址、緩存服務的服務地址、數據庫的配置等,都或多或少的需要一些外部的配置項。 ## 配置文件格式簡要說明 springboot默認的全局配置文件名為application.properties或者application.yml(spring官方推薦使用的格式是.yml格式,目前官網都是實例都是使用yml格式進行配置講解的),應用啟動時會自動加載此文件,無需手動引入。除此之外還有一個bootstrap的全局文件,它的加載順序在application配置文件之前,主要是用于在應用程序上下文的引導階段,在后期講解springCloudCofnig時,主要是利用此特性,進行配置文件的動態修改,在此不表,在通常情況下,此兩個配置文件是沒有差別的,所以一般上都只需要配置application即可。 ## 自定義屬性值 application.properties配置文件支持自定義屬性的支持,比如 ``` blog.address=https://blog.lqdev.cn blog.author=oKong ``` 然后可通過@Value("${blog.author}")的形式獲取屬性值。 ``` @RestController public class DemoController { @Value("${blog.address}") String address; @Value("${blog.author}") String author; @Value("${blog.desc}") String desc; @RequestMapping("/") public String demo() { return desc; } } ``` 這里提醒下,在填寫一些默認的比如,數據庫屬性時,可使用alt+/的方式,IDE會自動顯示提示,避免了手動嵌入屬性值或者忘記屬性的尷尬。 關于自定義屬性時,特別是一些公用包,會使用到屬性值時,建議在創建additional-spring-configuration-metadata.json屬性元文件,這樣在使用上述快捷方式時,會進行提示,包括屬性名和屬性說明,這樣也方便調用者詢問屬性名是啥。 相關configuration-metadata說明可查看:https://docs.spring.io/spring-boot/docs/current/reference/html/configuration-metadata.html ## 屬性引用 在配置文件中,各個屬性參數可進行引用的,比如: ``` blog.address=https://blog.lqdev.cn blog.author=oKong blog.desc=${blog.author},${blog.address} ``` 最后blog.desc的值即可:oKong,https://blog.lqdev.cn。利用此特性,并可實現一些特殊的功能。比如后期講解spring cloud時,注冊eurka注冊中心的實例名時,并會使用類似如下配置,使得實例名一眼就知道哪臺服務地址: eureka.instance.instance-id=${spring.cloud.client.ipAddress}:${server.port} 這里需要注意,由于springboot在讀取properties文件時,使用的是PropertiesPropertySourceLoader類進行讀取,默認讀取的編碼是ISO 8859-1,故在默認的配置文件中使用中文時,會出現亂碼,此時可以將中文轉成Unicode編碼或者使用yml配置格式(默認就支持utf-8),再不濟可以將作為配置寫入到一個自定義配置文件,利用@PropertySource注解的encoding屬性指定編碼 ## 隨機數 Spring Boot的屬性配置文件中可以通過${random}來產生int值、long值或者string字符串,來支持屬性的隨機值。 - 隨機字符串 .blog.value=${random.value} - 隨機int .blog.number=${random.int} - 隨機long .blog.bignumber=${random.long} - 10以內的隨機數 .blog.test1=${random.int(10)} - 1-20的隨機數 .blog.test2=${random.int[1,20]} ## 自定義配置文件 在多數情況下,配置信息基本上都是放入application.properties文件中,但在一些場景下,比如某個配置項比較多時,為了分開存放,也可自定義配置文件,如my.properties。由于自定義的文件,系統不會自動加載,這個時候就需要手動引入了。 利用@PropertySource注解既可以引入配置文件,需要引入多個時,可使用@PropertySources設置數組,引入多個文件。 ``` @SpringBootApplication @PropertySource(value="classpath:my.properties",encoding="utf-8") public class Chapter3Application { public static void main(String[] args) { SpringApplication.run(Chapter3Application.class, args); } } ``` ## 配置綁定對象 雖然使用@Value()方式,能方便的引入自定義的屬性值,但在多某個配置項屬于某一配置時,希望對應到一個實體配置類中,springboot也提供了支持。利用@ConfigurationProperties屬性,即可完成 my.properties配置文件: ``` config.code=code config.name=趔趄的猿 config.hobby[0]=看電影 config.hobby[1]=旅游 ``` ## 實體類: ``` @Component //@EnableConfigurationProperties(value= {Config.class}) @ConfigurationProperties(prefix="config") @Data public class Config { String code; String name; List<String> hobby; } ``` 這里可直接加入@Component使其在啟動時被自動掃描到,或者使用@EnableConfigurationProperties注解注冊此實體bean. 其次,在引入@ConfigurationProperties時,IDE會提示你引入spring-boot-configuration-processor依賴,前面提到,在自定義屬性時,創建additional-spring-configuration-metadata.json可進行屬性提示,而此依賴功能類似,會編譯時自動生成spring-configuration-metadata.json文件,此文件主要給IDE使用,用于提示使用。添加后在配置文件點擊屬性時,會自動跳轉到對應綁定的實體類中 ## 數組形式 配置了以下配置,然后利用List<String>就能獲取hobby的值了。 ``` config.code=code config.name=趔趄的猿 config.hobby[0]=看電影 config.hobby[1]=旅游 ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看