028-86922220

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

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

今天就跟大家聊聊有关基于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中增加依赖,如下。

   
   
    com.alibaba.nacos 
    nacos-spring-context 
    0.2.1- RC1 
  

第三步,在对应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 有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注创新互联行业资讯频道,感谢大家的支持。


网站题目:基于Spring的应用配置怎么迁移至阿里云应用配置管理ACM
转载来于:http://www.tsicrk.com/article/ipphco.html

其他资讯

让你的专属顾问为你服务

2.2561s