基于Spring的应用配置怎么迁移至阿里云应用配置管理ACM

发布时间:2021-12-21 15:26:40 作者:柒染
来源:亿速云 阅读:94

今天就跟大家聊聊有关基于Spring的应用配置怎么迁移至阿里云应用配置管理ACM ,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

最近遇到一些开发者朋友,准备将原有的Java Spring的应用配置迁移到 阿里云应用配置管理 ACM 中。迁移过程中,遇到不少有趣的问题。本文将通过一个简单的样例来还原迁移过程中遇到的问题和相关解决思路,以期达到和读者交流的目的。

什么样的配置适合进入配置中心

这是所有准备迁移配置到配置中心的用户遇到的第一个问题。我们将从时效性和安全这两个维度进行分析。

基于Spring的应用配置怎么迁移至阿里云应用配置管理ACMcdn.com/f174d13b6c9cc95a55d423df21d1349d69518790.png">

时效性:静态 VS 动态

静态配置是指程序版本一旦发布,基本上不会修改的配置内容,例如:

动态配置是指程序运行时的一些配置变化,通常会影响到程序的一些运行行为,例如:

从时效性的维度来讲,一般建议用户把静态配置存放到自己文件中,尽可能保持简单,但是需要把动态配置放到配置中心里,以加强灵活性和应用动态变更的实效性。

安全:非敏感 VS 敏感

非敏感配置一般指偏向技术类,暴露后不会导致配置上的安全隐患,例如:

敏感配置通常和业务数据相关,一旦泄露将引起安全隐患,例如:

从安全的维度来看,我们通常建议用户把非敏感配置存放到自己的文件中,尽可能保持简单,但是需要把敏感配置放到配置中心里,并加密且做好鉴权,尽量不要让无关人员接触到。

时效性和安全分析总结

基于 Spring 框架的Java应用配置如何迁移

使用Spring框架的Java开发者一般经常用到的一种配置注解姿势是利用Spring的@value注解。

原始的纯静态文件场景

例如这个配置,包含两个配置参数,一个是软件的版本号,一个是数据库连接串:

基于Spring的应用配置怎么迁移至阿里云应用配置管理ACM

通过@PropertySource和@value的注解来自动注入配置。

@Configuration
@ComponentScan("com.alibaba")
@PropertySource("classpath:myApp.properties")
  public class AppConfig {

  @Value(value="${url}")
  private String URL;
  @Value(value="${dbuser}")
  private String USER;
  @Value(value="${driver}")
  private String DRIVER;
  @Value(value="${dbpassword}")
  private String PASSWORD;

  @Value(value="${appVersion}")
  private String version;
}

以上代码省略了相关数据库连接初始化等操作。

开始配置迁移,进入混合配置场景

目前由于安全合规或配置时效等原因,要开始迁移配置到ACM上。经过分析,我们发现部分数据库的配置最好迁移到ACM,以红色字体标注。红色部分将全部被迁移到ACM中。

接下来主要三个改动,先归纳下。

第一步,直接到ACM中创建配置项,名字为myapp.dbconfig.properties,并把配置内容编辑在对应编辑框中。

第二步,在maven的pom.xml中增加依赖,如下。

   
  <dependency> 
    <groupId>com.alibaba.nacos</groupId> 
    <artifactId>nacos-spring-context</artifactId> 
    <version>0.2.1- RC1</version> 
  </dependency>

第三步,在对应AppConfig.java代码中植入API注解,通过ACM去获取动态配置。代码增加部分如红色字体部分。

  @Configuration @ComponentScan("com.journaldev") 
  @PropertySource("classpath:myApp.properties") 
  @EnableNacosConfig(globalProperties = 
  @NacosProperties(endpoint = "acm.aliyun.com", namespace = "xxx", accessKey = "xxx", secretKey = "xxx")) 
  @NacosPropertySource(dataId = "myApp.dbconfig.properties", autoRefreshed = true) public class AppConfig { 
  @Value(value="${url}") private String URL; 
  @Value(value="${dbuser}") private String USER; 
  @Value(value="${driver}") private String DRIVER; 
  @Value(value="${dbpassword}") private String PASSWORD; 

  @Value(value="${appVersion}") 
  private String version; public String getVersion() { 
      return version; 
  }
}

至此,改动结束。通过ACM SDK支持Spring的@value注解能力,代码几乎0改动。

几点注意事项

在以上代码实例中,有几样事情需要注意:

看完上述内容,你们对基于Spring的应用配置怎么迁移至阿里云应用配置管理ACM 有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

推荐阅读:
  1. 迁云的那些事
  2. 游戏UI框架设计(五): 配置管理与应用

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

spring acm

上一篇:ES6中Babel是如何编译Class的

下一篇:WGCNA如何从module中挖掘关键基因

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》