开源分布式配置组件conf使用教程

作者: 程序员Sunny | 来源:发表于2019-05-01 17:53 被阅读106次

本文主要用于说明开源分布式配置组件conf的优势和用法。
相关文章:本地配置注解读取——开源组件Conf
conf项目地址:https://github.com/zsunny6658/conf

优势

  1. 该组件主要用于获取项目本地配置(后期还会对远程配置进行支持)。
  2. 支持配置文件格式类型有:properties、xml、yml(yaml)、json。
  3. 支持动态配置,无需重启应用即可生效配置。
  4. 支持对类配置的支持。
  5. 支持事前事后监听器。
  6. 支持自定义配置文件名。

用法

第一步

github上下载该项目的release或者将项目源码导入。

第二步

使用命令将conf加入本地仓库,此处以1.1版本为例,文件名为conf-1.1.jar,:

mvn install:install-file -Dfile=conf-1.1.jar -DgroupId=com.sunny -DartifactId=conf -Dversion=1.1 -Dpackaging=jar
第三步

在项目的pom.xml中加入依赖:

<dependency>
  <groupId>com.sunny</groupId>
  <artifactId>conf</artifactId>
  <version>1.1</version>
</dependency>
第四步

在项目中使用,具体使用方法可参考项目的readme。
本文仅作展示一些简单用法,因为使用的是conf1.1版本,所以还不支持@Dynamic注解和动态配置。
本文中使用两个类作为测试类,分别命名为Example、ExampleClass,前者用于测试普通配置项,后者用于测试类配置项。
Example的主要内容为:

@ConfSource("classpath: configer.properties")
public class Example {
    @ConfPath("other.file.configer")
    private static String other;
    @ConfPath("server.port")
    private static String port;
    @SystemConfPath("system.conf.active")
    private static String active;
    public static void printPort(){
        System.out.println("other:" + other);
        System.out.println("prop-port:" + port);
        System.out.println("prop-active:" + active);
    }
}

ExampleClass的主要内容为:

@ConfClass
@ConfClassPrefix("test.")
public class ExampleClass {
    private static String a;
    private static String b = "2";
    @ConfClassIgnore
    private static String c;
    @ConfClassDefault("ddddd")
    private static String d;
    @ConfClassAlias("d")
    private static String e;
    public static void print(){
        System.out.println("class-a:" + a);
        System.out.println("class-b:" + b);
        System.out.println("class-c:" + c);
        System.out.println("class-d:" + d);
        System.out.println("class-e:" + e);
    }
}

测试内容非常简单,主要是声明了一些静态变量,和一个print方法用于打印类中变量的值。

第五步

添加配置文件,为了体现对各种配置文件的支持,使用五个配置文件,application.properties、application.xml、application.yml、application-prod.xml和configer.properties。前三者为系统默认配置支持;第四个为系统active配置,需要在配置中指明;第五个为自定义配置文件。在application.properties、application.xml和application-prod.xml中分别设置server.port配置。
application.properties的配置内容为:

server.port=222

application.xml的配置内容为:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
    <comment>系统配置</comment>
    <entry key="server.port"><![CDATA[123456]]></entry>
</properties>

application.yml的配置内容为:

server:
  port: 111
system:
  conf:
    active: prod
test:
  a: 1
  b: 2
  c: 3
  d: 5

application-prod.xml的配置内容为:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
    <comment>系统配置</comment>
    <entry key="server.port"><![CDATA[789]]></entry>
</properties>

configer.properties的配置内容为:

other.file.configer=this is other file configer

其中,各配置文件的默认优先级为:
active >> customize = xml > yml > yaml > properties
此处为:
application-prod.xml > configer.properties = application.xml > application.yml > application.properties

第六步

运行测试,使用测试类Test,其主要内容为:

public class Test {
    public static void main(String[] args) {
        ConfStarter.start();
        Example.printPort();
        ExampleClass.print();
    }
}

最终得到运行结果为:

other:this is other file configer
prop-port:789
prop-active:prod
class-a:1
class-b:2
class-c:null
class-d:ddddd
class-e:5

联系与交流

欢迎小伙伴与我讨论哦~

邮箱:zsunny@yeah.net

本文欢迎转载,请注明本文地址:https://www.jianshu.com/p/3336ed9130c3

相关文章

  • 开源分布式配置组件conf使用教程

    本文主要用于说明开源分布式配置组件conf的优势和用法。相关文章:本地配置注解读取——开源组件Confconf项目...

  • 开源组件Conf

    项目地址:https://github.com/zsunny6658/conf 在项目开发中,往往遇到这种情况:项...

  • Spark2.4.4安装配置

    spark2.4.4分布式 高可用HA配置 conf/slaves配置 conf/spark-env.sh配置 s...

  • sass使用总结

    1、安装sass、sass-loader 2、配置webpack.base.conf.js 3、在组件中使用 运行...

  • Vue学习总结(一)

    VUX 安装 需要对 build/webpack.base.conf.js 文件进行配置 使用 需引入并注册组件,...

  • 日更八

    推荐使用Nacos(阿里开源):一是因为它还带有配置中心的功能,可以取代Spring Cloudicon Conf...

  • 架构~微服务

    SpringCloud 分布式配置 SpringCloud 分布式配置史上最简单的 SpringCloud 教程 ...

  • Spark各组件功能简单理解(quick start)

    各个组件 conf/spark-env.sh 配置spark的环境变量 conf/spark-default.co...

  • 主从双备

    制造伪分布式 复制两份redis.conf配置文件(为redis1.conf,redis2.conf) 修改red...

  • tomcat优化

    1.配置优化 conf/web.xml优化 移除视图层组件JspServlet不使用jsp情况下可以移除 移除we...

网友评论

    本文标题:开源分布式配置组件conf使用教程

    本文链接:https://www.haomeiwen.com/subject/bvkwnqtx.html