java客户端线上Apollo服务端的实现

 更新时间:2019年08月13日 10:58:18   作者:赵山河丿  
这篇文章主要介绍了java客户端线上Apollo服务端的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

1.指定环境

1.1 在C:\opt\settings\下有server.properties

在这里插入图片描述

env=DEV是对应服务器上的如下图

apollo.meta=http://192.168.1.143:8070是你服务端的端口号

在这里插入图片描述

  1.2 在C:\opt\data\babel023\config-cache有这四个文件

在这里插入图片描述

2.在META-INF下创建app.properties

在这里插入图片描述
app.properties下的内容app.id对应Apollo服务端的id
在这里插入图片描述

3.创建个SimpleApolloConfig

package com.fqgj.rest;


import com.google.common.base.Charsets;

import com.ctrip.framework.apollo.Config;
import com.ctrip.framework.apollo.ConfigChangeListener;
import com.ctrip.framework.apollo.ConfigService;
import com.ctrip.framework.apollo.model.ConfigChange;
import com.ctrip.framework.apollo.model.ConfigChangeEvent;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 * @author Jason Song(song_s@ctrip.com)
 */
public class SimpleApolloConfigDemo {
 private static final Logger logger = LoggerFactory.getLogger(SimpleApolloConfigDemo.class);
 private String DEFAULT_VALUE = "undefined";
 private Config config;

 public SimpleApolloConfigDemo() {
  ConfigChangeListener changeListener = new ConfigChangeListener() {
   @Override
   public void onChange(ConfigChangeEvent changeEvent) {
    logger.info("Changes for namespace {}", changeEvent.getNamespace());
    for (String key : changeEvent.changedKeys()) {
     ConfigChange change = changeEvent.getChange(key);
     logger.info("Change - key: {}, oldValue: {}, newValue: {}, changeType: {}",
       change.getPropertyName(), change.getOldValue(), change.getNewValue(),
       change.getChangeType());
    }
   }
  };
  config = ConfigService.getAppConfig();
  config.addChangeListener(changeListener);
 }

 private String getConfig(String key) {
  String result = config.getProperty(key, DEFAULT_VALUE);
  logger.info(String.format("Loading key : %s with value: %s", key, result));
  return result;
 }

 public static void main(String[] args) throws IOException {
  SimpleApolloConfigDemo apolloConfigDemo = new SimpleApolloConfigDemo();
  System.out.println(
    "Apollo Config Demo. Please input key to get the value. Input quit to exit.");
  while (true) {
   System.out.print("> ");
   String input = new BufferedReader(new InputStreamReader(System.in, Charsets.UTF_8)).readLine();
   if (input == null || input.length() == 0) {
    continue;
   }
   input = input.trim();
   if (input.equalsIgnoreCase("quit")) {
    System.exit(0);
   }
   String ccc= apolloConfigDemo.getConfig(input);
   System.out.println(ccc);
  }
 }
}

运行结果如下

在这里插入图片描述

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 浅谈java定时器的发展历程

    浅谈java定时器的发展历程

    这篇文章主要介绍了浅谈java定时器的发展历程,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12
  • java集合 ArrayDeque源码详细分析

    java集合 ArrayDeque源码详细分析

    ArrayDeque是一种以数组方式实现的双端队列,它是非线程安全的。下面小编和大家一起学习一下
    2019-05-05
  • java8保姆级lambda表达式教程

    java8保姆级lambda表达式教程

    这篇文章主要介绍了Java8之后的Lambda表达式的用法,lambda表达式将大量替代匿名内部类的使用,简化代码的同时,更突出了原来匿名内部类中最重要的那部分包含真正逻辑的代码,需要的朋友可以参考下
    2023-03-03
  • Spring Boot整合logback一个简单的日志集成架构

    Spring Boot整合logback一个简单的日志集成架构

    今天小编就为大家分享一篇关于Spring Boot整合logback一个简单的日志集成架构,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • Mybatis调用视图和存储过程的方法

    Mybatis调用视图和存储过程的方法

    MyBatis支持普通sql的查询、视图的查询、存储过程调用,是一种非常优秀的持久层框架。接下来通过本文给大家介绍mybatis调用视图和存储过程的方法,感兴趣的朋友一起看看吧
    2016-10-10
  • 深入浅出MyBatis映射器

    深入浅出MyBatis映射器

    映射器是MyBatis最复杂也最重要的组件,也是基于MyBatis应用程序开发中,本文主要介绍了深入浅出MyBatis映射器,具有一定的参考价值,感兴趣的可以了解一下
    2024-04-04
  • Mybatis-plus如何更新Null字段详解

    Mybatis-plus如何更新Null字段详解

    MyBatis-plus在进行更新操作时不会更新传入实体中为null或默认值属性字段,只更新不为null的值、非默认值的属性字段,这篇文章主要给大家介绍了关于Mybatis-plus如何更新Null字段的相关资料,需要的朋友可以参考下
    2023-07-07
  • java识别一篇文章中某单词出现个数的方法

    java识别一篇文章中某单词出现个数的方法

    这篇文章主要介绍了java识别一篇文章中某单词出现个数的方法,涉及java字符解析操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-10-10
  • Java优秀类库Hutool使用示例

    Java优秀类库Hutool使用示例

    Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,涵盖了Java开发开发中的方方面面,使用Hutool可节省开发人员对项目中公用类和公用工具方法的封装时间,使开发专注于业务,同时可以最大限度的避免封装不完善带来的bug
    2023-02-02
  • Java练手小项目实现一个项目管理系统

    Java练手小项目实现一个项目管理系统

    读万卷书不如行万里路,只学书上的理论是远远不够的,只有在实战中才能获得能力的提升,本篇文章手把手带你用Java实现一个项目管理系统,大家可以在过程中查缺补漏,提升水平
    2021-10-10

最新评论