示例代码

添加依赖后,即可在程序中使用 ACM Java Native SDK 提供的接口。

说明 请将代码中的 $regionId、$endpoint、$namespace、$accessKey、$secretKey 分别替换为 ACM 控制台上命名空间详情对话框内的地域 ID、End Point、命名空间 ID、AccessKey、SecretKey。

import java.util.Properties;

import com.alibaba.edas.acm.ConfigService;

import com.alibaba.edas.acm.exception.ConfigException;

import com.alibaba.edas.acm.listener.ConfigChangeListener;

import com.alibaba.edas.acm.listener.PropertiesListener;

// 示例代码,仅用于示例测试

public class ACMTest {

// 属性/开关

private static String config = "DefaultValue";

private static Properties acmProperties = new Properties();

public static void main(String[] args) {

try {

// 从控制台命名空间管理中拷贝对应值

Properties properties = new Properties();

properties.put("endpoint", "$endpoint");

properties.put("namespace", "$namespace");

// 通过 ECS 实例 RAM 角色访问 ACM

// properties.put("ramRoleName", "$ramRoleName");

properties.put("accessKey", "$accessKey");

properties.put("secretKey", "$secretKey");

// 如果是加密配置,则添加下面两行进行自动解密

//properties.put("openKMSFilter", true);

//properties.put("regionId", "$regionId");

ConfigService.init(properties);

// 主动获取配置

String content = ConfigService.getConfig("${dataId}", "${group}", 6000);

System.out.println(content);

// 初始化的时候,给配置添加监听,配置变更会回调通知

ConfigService.addListener("${dataId}", "${group}", new ConfigChangeListener() {

public void receiveConfigInfo(String configInfo) {

// 当配置更新后,通过该回调函数将最新值返回给用户。

// 注意回调函数中不要做阻塞操作,否则阻塞通知线程。

config = configInfo;

System.out.println(configInfo);

}

});

/**

* 如果配置值的內容为properties格式(key=value),可使用下面监听器。以便一个配置管理多个配置项

*/

/**

ConfigService.addListener("${dataId}", "${group}", new PropertiesListener() {

@Override

public void innerReceive(Properties properties) {

// TODO Auto-generated method stub

acmProperties = properties;

System.out.println(properties);

}

});

**/

} catch (ConfigException e) {

e.printStackTrace();

}

// 测试让主线程不退出,因为订阅配置是守护线程,主线程退出守护线程就会退出。 正式代码中无需下面代码

while (true) {

try {

Thread.sleep(1000);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

// 通过get接口把配置值暴露出去使用

public static String getConfig() {

return config;

}

// 通过get接口把配置值暴露出去使用

public static Object getPorpertiesValue(String key) {

if (acmProperties != null) {

return acmProperties.get(key);

}

return null;

}

}

acm java_ACM Java Native SDK 概述相关推荐

  1. Android JNI(Java Native Interface)技术介绍

    Android平台上的JNI技术介绍 JUL 15TH, 2013 | COMMENTS NDK简介 Android是由Google领导开发的操作系统,Android依靠其开放性,迅速普及,成为目前最 ...

  2. java native 关键字

    今天在看Javase中的classLoder类的源码时,发现一直找不到 private native final Class<?> findLoadedClass0(String name ...

  3. 蚂蚁区块链第15课 JS SDK概述及API接口速查

    1,摘要 本文讲解蚂蚁BAAS的JavaScript SDK概述,说明JS SDK对应的API接口速查.其他语言包SDK参考官网其他章节说明即可. 2,JS SDK 说明 JavaScript SDK ...

  4. HiCar SDK概述

    HiCar SDK概述 HUAWEI HiCar SDK 是 HUAWEI HiCar(以下简称 HiCar )为汽车硬件设备提供的软件开发工具包,为汽车硬件厂商接入 HiCar 提供应用 API 接 ...

  5. java native

    引用:http://www.blogjava.net/shiliqiang/articles/287920.html JNI是Java Native Interface的 缩写.从Java 1.1开始 ...

  6. ACM中java的使用

    ACM中java的使用 转载自http://www.cnblogs.com/XBWer/archive/2012/06/24/2560532.html 这里指的java速成,只限于java语法,包括输 ...

  7. POPTEST老李谈JVM、JRE、JDK、java ee sdk with jdk区别

    POPTEST老李谈JVM.JRE.JDK.java ee sdk with jdk区别 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作 ...

  8. Java Native Interface 六JNI中的异常

    本文是<The Java Native Interface Programmer's Guide and Specification>读书笔记 在这里只讨论调用JNI方法可能会出现的异常, ...

  9. 【转】JNI(Java Native Interface)的简介

    因为刚刚接触android和java平台,对JNI到底是什么,还不是很了解,所以从CSDN转载了一篇文章,以便自己对JNI有一个认识,也跟大家分享一下. JNI是Java Native Interfa ...

最新文章

  1. 关于学习Python的一点学习总结(23->while语句与else)
  2. iOS32位唯一标识符
  3. 基于Keras搭建cifar10数据集训练预测Pipeline
  4. 怎样通过css控制table的部分td
  5. Spring Cloud Alibaba:Sentinel 流控规则
  6. linux__ftp
  7. yum的基本使用(命令+案列)
  8. armboot和内核文件系统烧写总结
  9. AcWing 1913. 公平摄影(前缀和+STL)
  10. Apple 官方文档翻译:NSURLSession
  11. Vim 配置详解_wuyang
  12. bxp客户端手工PNP基本过程(转)
  13. 【BZOJ1502】【NOI2005】月下柠檬树
  14. 编译google test 源码
  15. 2019提前批——拼多多笔试题
  16. 关于上传文件的报错问题
  17. js字段名下划线命名转驼峰,驼峰转下划线
  18. 机器人门禁控制盒怎么接线方法_门禁控制器怎么接线_门禁控制器接线图说明 - 全文...
  19. java项目中使用Sigar获取系统信息
  20. 星球福利 | 读书的季节,送上豆瓣 Top10 区块链书单

热门文章

  1. 创建JPA工程时提示:at least one user library must be selected
  2. linux合并vi的两个文件,两个文件的对比查看及合并工具:vimdiff-文件合并
  3. 自定义LocaleResolver实现页面中英文切换
  4. RabbitMQ(六)整合SpringBoot
  5. php java if_phpjava(二)
  6. linux 文件服务,Linux操作系统之文件服务(ftp、nfs)
  7. poi插入图片浮于文字上方_Word插入手写签名
  8. flutter嵌入HTML5页面,Flutter加载Html并实现与JS 的双向调用
  9. 阿里云叔同:以容器为代表的云原生技术,已成为释放云价值的最短路径
  10. 从零开始入门 K8s | 可观测性:你的应用健康吗?