Spring项目在不同运行环境下的全局配置

1. 将全局配置文件拷贝多份,按照不同的环境命名

将全局配置文件,按照“开发”,“测试”,“生产”环境,分别将全局配置文件命名为
application-dev.properties
application-test.properties
application-pro.properties
我这边用 conf 作为前缀, 然后把全局配置文件放在项目的根目录中
这里写图片描述

2.在根项目的pom文件中配置maven启动时的环境profile

  <profiles>
   <!--默认激活开发配置,使用index-dev.properties来替换实际的文件key -->
   <profile>
      <id>dev</id>
      <properties>
         <deploy.env>dev</deploy.env>
      </properties>
      <activation>
         <activeByDefault>true</activeByDefault>
      </activation>
   </profile>
   <!-- 测试环境配置 -->
   <profile>
      <id>test</id>
      <properties>
         <deploy.env>test</deploy.env>
      </properties>
   </profile>
   <!-- 生产环境配置 -->
   <profile>
      <id>pro</id>
      <properties>
         <deploy.env>pro</deploy.env>
      </properties>
   </profile>
</profiles>

3.在子模块的pom文件中定义filter

在资源过滤被激活的时候,Maven会扫描filter指定profile对应的配置文件资源,寻找由${}包围的Maven属性的引用。一旦它找到这些引用,它就会使用合适的值去替换它们.

在子模块的pom.xml文件加入: filter中是我们的全局配置文件的相对地址

<filters>
   <filter>../conf/conf-${deploy.env}.properties</filter>
</filters>

由于我们在profile中定义的dev为默认,这样的话 , 这个模块中的配置文件,${}中的参数都会去conf-dev.properties中查找替换

比如我配置的redis , 在模块的配置文件中:
这里写图片描述

conf-dev.properties中redis的配置
这里写图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
config-keeper是一个基于Spring Boot 和Spring Cloud开发的配置中心,无缝兼容Spring Boot 和 Spring Cloud应用。 在微服务架构中,配置中心是个必不可少的基础服务。应用部署到生产环境后,由于各种原因,需要调整一些配置。如果每次修改配置都需要经过修改代码、重新打包、重新部署等过程,为了避免重新部署造成请求错误,还需要将应用从负载均衡中下线,部署成功后再重新上线,当部署的实例比较多的情况下,那就会严重影响投产效率,如果是为了解决生产上的问题而调整配置,那么这个过程耗时越多,带来的风险也就越大。所以我们需要在不停机、不重新打包、不重新部署的情况下,可以动态修改配置(比如:功能开关、性能参数等)。为了方便动态更新应用配置,需要把配置放到应用执行包之外的配置中心。配置文件不需要打进应用执行包中后,可以带来以下几个好处:一个可执行包就可以在不同环境运行,可以降低包的版本管理成本,也可以降低docker镜像的版本管理成本。 Spring cloud 虽然已经为我们提供了基于git或mongodb等实现的配置中心,但是这些方案实现都过于简单,没有达到实际可用的标准,比如:没有提供统一的管理页面,不便于操作和使用;没有权限管理功能;没有数据验证功能等等。但Spring cloud config的核心技术还是可以为我们所有,没有必要重新造轮子。 ConfigKeeper 是由随行付架构部基于Spring Cloud研发的分布式配置中心。基于Spring Cloud开发。与Spring Boot、Spring Cloud应用无缝兼容。下面我们将详细介绍ConfigKeeper配置中心(有图有真像): 1. 支持权限管理,保证数据的安全 角色设计比较简单,只有管理员和普通用户两种,管理员拥有最高权限,而普通用户只能查看和操作为其分配的配置,以保证数据的安全。 2. 支持多环境部署,也支持多环境配置集中管理 企业可以根据自身的情况设置不同环境,比如:测试、rc以及生产环境。可以多环境共用一个配置中心,也可以每个环境单独使用一个配置中心,根据企业需求灵活部署。 3. 配置管理简单实用 为了避免配置内容耦合问题,我们只设计了全局配置(global config)和应用配置(application config)两种类型的配置,并没有设计”组配置“。全局配置是指某一环境下所有应用都能生效的配置,但它的优先及低于应用配置,一个运行环境下有且只有一个全局配置。如果应用可执行包已经有相同的配置,那么会被配置中心的配置所覆盖。 3.1 自带版本管理功能:自动生成版本号以及回退功能 3.2 使用Yml在线编辑器,能实时检查配置格式是否正确; 3.3 支持修改前后内容对比功能,保证修改内容的正确性 4. 客户端使用简单并兼容Spring Boot和Spring Cloud应用 配置中心提供http接口拉取配置,所以只要支持http协议的应用都是可以使用的。我们已经实现了Spring Boot和Spring Cloud应用的客户端,接下来说明其一些特性及使用方法。 4.1 无缝兼容Spring boot、Spring Cloud应用 4.2 支持灰度发布 4.3 支持客户端缓存,即使配置中心服务不可用,也不会影响应用的启动

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值