<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                [TOC] > [github](https://github.com/tietang/props) ## 概述 ### 支持的配置源: * properties格式文件 * ini格式文件 * yaml格式文件 * [Apollo](https://github.com/ctripcorp/apollo)k/v,k/props,k/ini,k/yaml * [Nacos](http://nacos.io/)k/props\[properties\],k/yaml,k/ini,k/ini\_props * zookeeper k/v * zookeeper k/props\[properties\],k/yaml,k/ini,k/ini\_props * consul k/v * consul k/props\[properties\],k/yaml,k/ini,k/ini\_props * etcd API V2 k/v * etcd API V2 k/props * etcd API V3 k/v * etcd API V3 k/props ### key/value支持的數據類型: * key只支持string * value 5種數據類型的支持: * string * int * float64 * bool * time.Duration: * 比如 "300ms", "-1.5h" or "2h45m". * 合法的時間單位: "ns", "us" (or "μs"), "ms", "s", "m", "h". ### 其他特性 * Unmarshal支持 * 上下文變量eval支持,`${}`形式 * 支持多配置源組合 * 默認添加了系統環境變量,優先級最低 ## 安裝 `go get -u github.com/tietang/props` ## 格式 ### properties `[key][=|:][value]` 例子: config.properties ``` server.port=8080 //or server.port: 8080 ``` #### kvs.ReadPropertyFile 從文件讀取 ``` p, e := kvs.ReadPropertyFile("config.properties") p.Get("server.port") //8080 p.Get("prefix.key1") p.GetDefault("prefix.key1", "default value") p.GetBool("prefix.key2") p.GetBoolDefault("prefix.key2", false) p.GetInt("prefix.key3") p.GetIntDefault("prefix.key3", 1) p.GetFloat64("prefix.key4") p.GetFloat64Default("prefix.key4", 1.2) ``` #### kvs.NewProperties() 通過 io.reader ``` p := kvs.NewProperties() p.Load(strings.NewReader("server.port=8080\nserver.ip=127.0.0.1")) p.Get("server.ip") //127.0.0.1 ``` #### kvs.NewPropertiesConfigSource() ``` var cs kvs.ConfigSource cs = kvs.NewPropertiesConfigSource("conf/config.properties") cs.Get("server.port") //8080 var cs kvs.ConfigSource cs = kvs.NewPropertiesConfigSourceByFile("conf", "conf/config.properties") cs.Get("server.port") //8080 //向 map 中獲取參數 var cs kvs.ConfigSource m := make(map[string]string) m["server.port"] = "8080" cs = kvs.NewPropertiesConfigSourceByMap("conf", m) cs.Get("server.port") //8080 ``` ### ini格式文件 格式: ``` [section] [key1][=|:][value1] [key1][=|:][value1] ``` ``` file := "conf/config.ini" p := ini.NewIniFileConfigSource(file) p = ini.NewIniFileConfigSourceByFile("name", file) s, _ := p.Get("server.port") ``` ### 上下文變量表達式(或者占位符)的支持 支持在props上下文中替換占位符:${} ``` p := kvs.NewEmptyMapConfigSource("map2") p.Set("orign.key1", "v1") p.Set("orign.key2", "v2") p.Set("orign.key3", "2") p.Set("ph.key1", "${orign.key1}") p.Set("ph.key2", "${orign.key1}:${orign.key2}") p.Set("ph.key3", "${orign.key3}") conf := kvs.NewDefaultCompositeConfigSource(p) phv1, err := conf.GetInt("ph.key1")//v1 phv2, err := conf.Get("ph.key2")//v1:v1 phv3, err := conf.GetInt("ph.key3")//2 ``` ### 多種配置源組合使用 優先級以追加相反的順序,最后添加優先級最高。 ``` conf := kvs.NewEmptyCompositeConfigSource() kv1 := []string{"go.app.key1", "value1", "value1-2"} kv2 := []string{"go.app.key2", "value2", "value2-2"} p1 := kvs.NewEmptyMapConfigSource("map1") p1.Set(kv1[0], kv1[1]) // go.app.key1=value1 p1.Set(kv2[0], kv2[1]) // go.app.key1=value2 p2 := kvs.NewEmptyMapConfigSource("map2") p2.Set(kv1[0], kv1[2]) // go.app.key2=value1-2 p2.Set(kv2[0], kv2[2]) // go.app.key2=value2-2 conf.Add(p1) conf.Add(p2) conf.Get(kv1[0]) //value1-2 conf.Get(kv2[0]) //value2-2 ```
                  <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>

                              哎呀哎呀视频在线观看