Giter VIP home page Giter VIP logo

config-toolkit's Introduction

分布配置工具包

${rootNode}/${version}/${group}/${keyValues}


社区

文档

文档: https://github.com/dangdangdotcom/config-toolkit/wiki

搭建配置界面

下载config-toolkit项目

git clone https://github.com/dangdangdotcom/config-toolkit.git
cd config-toolkit/config-zk-web
mvn package

将编译好的config-web.war部署到tomcat即可

创建初始权限配置

使用命令行创建zookeeper配置根节点,根节点密码使用sha1加密,如果要使用明文密码,可以自行修改config-zk-web的鉴权部分代码 以根路径为/projectx/modulex密码为abc为例

python -c "import hashlib;print hashlib.sha1('abc').hexdigest();"
# a9993e364706816aba3e25717850c26c9cd0d89d 
zkCli.sh -server localhost:2181
create /projectx 1
create /projectx/modulex a9993e364706816aba3e25717850c26c9cd0d89d

登录config-web,创建示例配置

  • 访问http://localhost:8080/config-web
  • 点击"切换根节点",输入/projectx/modulex,密码abc
  • 点击"新建版本",输入1.0.0
  • 左侧的组管理,输入group,点击"创建"
  • 在右侧添加两个配置,分别为config.str=hello, config.int=7758

项目中加载配置

添加maven依赖

<dependency>
  <groupId>com.dangdang</groupId>
  <artifactId>config-toolkit</artifactId>
  <version>3.2.2-RELEASE</version>
</dependency>

使用Java代码直接获取配置

ZookeeperConfigProfile configProfile = new ZookeeperConfigProfile("localhost:2181", "/projectx/modulex", "1.0.0");
GeneralConfigGroup group = new ZookeeperConfigGroup(configProfile, "group");

String stringProperty = group.get("config.str");
Preconditions.checkState("hello".equals(stringProperty));
String intProperty = group.get("config.int");
Preconditions.checkState(7758 == Integer.parseInt(intProperty));

结合spring placeholder方式注入配置

spring xml schema

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:config="https://crnlmchina.github.io/config"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
             https://crnlmchina.github.io/config https://crnlmchina.github.io/config/config.xsd">

bean配置

<config:profile connect-str="localhost:2181" root-node="/projectx/modulex" 
		version="1.0.0"/>

<config:placeholder>
	<config:group node="property-group1" />	
	<config:group node="property-group2" />	
</config:placeholder>

<!-- Your business bean -->
<bean class="your.BusinessBean">
    <property name="strProp" value="${config.str}" />
    <property name="intProp" value="${config.int}" />
</bean>

由于spring对多个placeholder的支持不太好,需要仔细配置order,所以建议使用SPEL方式来配置

结合spring SPEL方式注入配置

<config:profile connect-str="localhost:2181" root-node="/projectx/modulex" version="1.0.0"/>
<config:group id="groupProp" node="group"/>

<!-- Your business bean -->
<bean class="your.BusinessBean">
    <property name="strProp" value="#{groupProp['config.str']}" />
    <property name="intProp" value="#{groupProp['config.int']}" />
</bean>

config-toolkit's People

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.