在工做中咱們時常要根據不一樣環境配置不一樣的參數,讓項目的靈活性、可用性變得更高,那靈活的配置就變得必不可少,雖然目前已經存在不少配置管理解決方案,可是管理方式侷限性大,適應範圍窄。html
DuiC 在設計初就考慮到配置的應用範圍,將配置獲取方式設計爲 RESTful API 的方式,可支持任何服務器端,客戶端以及 WEB 輕鬆獲取配置。其次 DuiC 管理配置統一採用 YAML 的方式,並提供 WEB 編輯器及語法高亮,語法校驗等功能,下降配置修改的錯誤率。java
DuiC 源碼: https://github.com/zhudyos/duic
Swagger 文檔: https://app.swaggerhub.com/ap...
Docker 鏡像: https://hub.docker.com/r/zhud...
DuiC 提供 Java 客戶端 API 幫助你快速獲取配置,支持 Android/Java/JavaWeb/Spring 獲取配置同時支持熱加載配置。git
duic-java-client: https://github.com/zhudyos/du...
使用 API 提供的 ConfigUtils
工具包獲取配置。
建立 Config 實例並將設置爲 ConfigUtils 的默認配置,使用。github
Config config = new Config.Builder() .baseUri("https://duic.zhudy.io/api/v1") .name("hello") .profile("world") // .configToken("...") // .reloadPlot(new ReloadPlot(10, TimeUnit.SECONDS)) // 重載 // .failFast(true) // 快速失敗 // .listener() // 配置加載監聽 .build(); ConfigUtils.setDefaultConfig(config);
使用 API 提供的 ConfigUtils
工具包獲取配置。
在 web.xml 中配置監聽器web
<!-- 默認配置路徑 classpath:duic.properties --> <context-param> <param-name>duicConfigLocation</param-name> <param-value>classpath:duic.properties</param-value> </context-param> <listener> <listener-class>io.zhudy.duic.config.web.DuicConfigContextListener</listener-class> </listener>
在 duic.properties 文件中增長配置管理中心信息spring
duic.base.uri=https://duic.zhudy.io/api/v1 duic.name=hello duic.profile=world duic.config.token= duic.reload.period=10 duic.reload.unit=SECONDS duic.fail.fast=false # 多個 DuicListener 採用英文逗號(,)分隔 duic.listeners=xx.MyDuicListener
ConfigUtils
工具包獲取配置@Value
的方式注入配置(推薦)以上2種方式都支持熱加載,推薦使用 @Value
的方式注入配置,這種方式對於你的代碼沒有任何的浸入性,支持 spring3.2 以上的版本使用。docker
使用註解的方式初始化bootstrap
@Bean public static DuicConfigBeanFactoryPostProcessor duicConfigBeanFactoryPostProcessor() { DuicConfigBeanFactoryPostProcessor processor = new DuicConfigBeanFactoryPostProcessor(); processor.setBaseUri("https://duic.zhudy.io/api/v1"); processor.setName("hello"); processor.setProfile("world"); return processor; }
使用 XML 的方式初始化api
<bean id="duicConfigBeanFactoryPostProcessor" class="io.zhudy.duic.config.spring.duicConfigBeanFactoryPostProcessor"> <property name="baseUri" value="https://duic.zhudy.io/api/v1"/> <property name="name" value="hello"/> <property name="profile" value="world"/> </bean>
注入配置服務器
@Component public class Example { @Value("${k1.string}") private String k1; }
DuiC 也提供了 duic-spring-cloud-config-client 來支持 spring-boot,使用 DuiC 管理配置能夠徹底替代 spring-cloud-config。
duic-spring-cloud-config-client: https://github.com/zhudyos/du...
該工具包支持 @ConfigurationProperties
及 @Value
注入配置,同時也支持熱加載。
注意若是你使用 @ConfigurationProperties
注入配置而且想要熱加載配置須要配合使用 @RefreshScope
註解。
關於更多 @RefreshScope
的資料請查看 spring-cloud 官方文檔:https://cloud.spring.io/sprin...
使用示例在 bootstrap.yml 文件中增長以下配置
spring: application: name: samples (1) duic: spring: cloud: config: watch: enabled: true (2) initial_delay: 10000 (3) fixed_delay: 10000 (4) uri: https://duic.zhudy.io/api/v1 (5) profile: first,second (6) # token: [TOKEN] (7)
https://github.com/zhudyos/du...
關於 DuiC 更加詳細的描述,能夠查看倉庫中在 readme。
在線演示平臺: https://duic.zhudy.io/index.html
e-mail: kevinz@weghst.com
password: 123456
你們可使用在線演示平臺,嘗試使用其提供的 API 及 SDK。
友情提醒:服務器配置較差,訪問速度可能不是很快,請體諒。