zookeer配置客戶端

背景:
對於如今的配置系統,提供一個統一的客戶端來處理配置的更新刪除,更方便的使用以及維護
1、maven依賴:spring

<dependency>
    <groupId>com.lb.bs</groupId>
    <artifactId>lb-bs-client-core</artifactId>
    <version>2.0-SNAPSHOT</version>
</dependency>

2、啓動方式:
一、spring啓動方式app

@Bean
    public SpringStarter getSpringStarter(Environment environment) {
        String zkHost = environment.getProperty("zk.host");
        SpringStarter springStarter = new SpringStarter();
        StaticConfig config = StaticConfig.builder()
                .appendNameSpace("test/zookeeper")
                .appendScanPackages("com.lb.bs.demo")
                .appendZkHost(zkHost).build();
        springStarter.appendStaticConfig(config);
        return springStarter;
    }

二、simple啓動方式maven

StaticConfig staticConfig = StaticConfig.builder()
                 .appendNameSpace("test/zookeeper")
                .appendZkHost("106.111.111.111:2181")
                .appendScanPackages("com.lb.bs.demo")
                .build();
        new SimpleStarter()
                .appendStaticConfig(staticConfig)
                .start();
區別:
主要是配置類獲取方式的區別,spring啓動方式能夠是依賴spring的組件的,在使用具體的配置類時能夠使用spring提供的 @Autowired註解進行注入,使用起來方便而簡單類型啓動方式,使用配置類比較麻煩。

2、配置類配置方式:ide

@LBClass(groupName = "/lb")
@Component
public class Student {
    private Integer id;

    private String name;

    private String logPath;

    private boolean young;

    @LBItem(key = "/student/id", value = "10")
    public Integer getId() {
        return id;
    }

    @LBItem(key = "/student/young", value = "false")
    public boolean getYoung() {
        return young;
    }

    @LBItem(key = "/student/name", value = "hello_world")
    public String getName() {
        return name;
    }

    @LBItem(key = "/student/logPath", value = "hello_world", isLogPath = true)
    public String getLogPath() {
        return logPath;
    }

}

註釋:ui

@LBClass:

做用:做用在類上,標識這是一個配置類,能夠將將全部的配置統一寫在這裏,客戶端配置系統會掃描配置的包中標有該註釋的類。

groupName:分組名稱,改配置類的最頂級節點

enableGray:灰度標識,默認false不啓動灰度
@LBItem

做用:做用在方法上,標識獲取具體配置的方法,方便進行代理

key:具體的配置節點

value:默認值

associateField:關聯的屬性名稱,若是該方法是ide自動生成的,以get或者is開頭,能夠不寫

isLogPath:標識改節點是不是日誌節點,如果,在改節點變動的時候會同步變動日誌級別
相關文章
相關標籤/搜索