Springcloud Config支持本地配置文件的方法示例

背景:

Springcloud项目使用Springcloud-config作为分布式配置,配置参数都放在config里,不同的环境有不同的问题:

项目本地:

  • boostrap.yml

远程配置:

  • application.yml
  • application-local.yml
  • application-dev.yml
  • application-test.yml
  • application-prod.yml

其中application-local.yml是本地开发环境,由于开发时,经常修改配置,就会频繁去修改config。
所以想将application-local.yml放在项目本地,而不是在config里。

也就是最终变成:

项目本地:

  • boostrap.yml
  • application-local.yml

远程配置:

  • application.yml
  • application-dev.yml
  • application-test.yml
  • application-prod.yml

调整之后,发现项目启动失败,项目并不会去读取本地的application-local.yml,需要我们来指定加载。

调整

原先的启动代码:

SpringApplication.run(Application.class, args);

改成:

new SpringApplicationBuilder(Application.class)
  .properties("spring.config.location=classpath:application-${spring.profiles.active}.yml,classpath:bootstrap.yml")
  .run(args);

一定要指定classpath:bootstrap.yml(如果还有其他本地文件,也是一样),如果在没有配置spring.config.location的情况下,项目会默认加载classpath:bootstrap.yml,如果指定了就只会加载指定的配置文件。

测试用例

如果用了spring-test+junit,可以通过properties指定配置文件:

@SpringBootTest(properties = {"spring.config.location=classpath:tscm-service-oem-forecast-${spring.profiles.active}.yml,classpath:bootstrap.yml"})

也就是最终是:

@SpringBootTest(classes = {Application.class},
    webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
    properties = {"spring.config.location=classpath:tscm-service-oem-forecast-${spring.profiles.active}.yml,classpath:bootstrap.yml"})

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

(0)

相关推荐

  • SpringCloud之分布式配置中心Spring Cloud Config高可用配置实例代码

    一.简介 当要将配置中心部署到生产环境中时,与服务注册中心一样,我们也希望它是一个高可用的应用.Spring Cloud Config实现服务端的高可用非常简单,主要有以下两种方式. 传统模式:不需要为这些服务端做任何额外的配置,只需要遵守一个配置规则,将所有的Config Server都指向同一个Git仓库,这样所有的配置内容就通过统一的共享文件系统来维护.而客户端在指定Config Server位置时,只需要配置Config Server上层的负载均衡设备地址即可, 就如下图所示的结构. 服

  • springcloud config配置读取优先级过程详解

    情景描述 最近在修复Eureka的静态页面加载不出的缺陷时,最终发现是远程GIT仓库将静态资源访问方式配置给禁用了(spring.resources.add-mappings=false).虽然最后直接修改远程GIT仓库的此配置项给解决了(spring.resources.add-mappings=true),但是从中牵涉出的配置读取优先级我们必须好好的再回顾下 springcloud config读取仓库配置 通过config client模块来读取远程的仓库配置,只需要在boostrap.p

  • 详解SpringCloud Config配置中心

    一.创建Config配置中心项目 1.添加依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency> 2.启动类,需要添加@EnableConfigServer import org.springframework.boot.SpringApp

  • Springcloud Config支持本地配置文件的方法示例

    背景: Springcloud项目使用Springcloud-config作为分布式配置,配置参数都放在config里,不同的环境有不同的问题: 项目本地: boostrap.yml 远程配置: application.yml application-local.yml application-dev.yml application-test.yml application-prod.yml 其中application-local.yml是本地开发环境,由于开发时,经常修改配置,就会频繁去修改c

  • spring配置文件加密方法示例

    Spring的配置文件是用于指导Spring工厂进行Bean生成.依赖关系注入及Bean示例分发的"图纸",他是一个或多个标砖的XML文档,J2EE程序员必须学会灵活应用这份"图纸",准确的表达自己的"生成意图".Spring配置文件是一个或多个标准的XML文档,applicationContext.xml是Spring的默认配置文件,当容器启动时找不到指定的配置文档时,将会尝试加载这个默认的配置文件. spring框架在一些对安全性要求较高的生

  • koa-passport实现本地验证的方法示例

    安装 yarn add koa-passport passport-local 先看下passport.js登录策略,判断用户和密码 const passport = require('koa-passport') const LocalStrategy = require('passport-local').Strategy const User = require('../../dbs/models/users') passport.use(new LocalStrategy((userna

  • Linux下apache支持PHP配置文件的方法

    本文用来记忆整了两天的lamp环境,如果对PHP没有要求建议全部用yum 一键安装,纯属个人经验,主要作用是用来参考的. yum install httpd #yum 安装Apache. php编译安装 安装前记得安装php依赖环境 yum安装PHP5.6的依赖环境 yum -y install gcc gcc-c++ libxml2 libxml2-devel PHP5.6.2下载路径 wget http://mirrors.sohu.com/php/php-5.6.2.tar.gz /con

  • SpringCloud Config使用本地仓库及map注入

    默认情况下,SpringCloud Config使用的是远程的仓库,所以默认要配置uri 如果不想使用远程仓库,而使用本地仓库,需要做以下配置: spring.profiles.active=native spring.cloud.config.server.native.search-locations=file:D:/git/myconfig 注意3点: 1. 使用spring.profiles.active指定要使用本地仓库,而不是其他属性.注意这个属性一般的作用是激活哪一套配置,在con

  • Python实现读写INI配置文件的方法示例

    本文实例讲述了Python实现读写INI配置文件的方法.分享给大家供大家参考,具体如下: # -*- coding: utf-8 -*- import ConfigParser import os '''读写配置文件的类 [section] logpath = D:\log\ imageminsize = 200 ''' class ConfigFile: '''构造函数:初始化''' def __init__(self,fileName): fileName = unicode(fileNam

  • java简单读取properties配置文件的方法示例

    本文实例讲述了java简单读取properties配置文件的方法.分享给大家供大家参考,具体如下: 读取配置文件,小结如下 import java.io.FileNotFoundException; import java.io.IOException; import java.util.Properties; public class loadConf { private Properties prop = new Properties(); private void loadconf() t

  • Spring Cloud Config 使用本地配置文件方式

    一.简介 在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件. 在Spring Cloud中,有分布式配置中心组件spring cloud config ,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程Git仓库中. 在spring cloud config 组件中,分两个角色,一是config server,二是config client. 二.配置 2.1 Spring Cloud Config Server项目 1 pom.x

  • nginx升级到支持HTTP2.0的方法示例

    一.前言 最近想折腾一下服务器,升级到http2.0. 然后nginx照着官网配置了一下 # ssl写在443端口后面.这样http和https的链接都可以用 listen 443 ssl http2 default_server; server_name chat.chengxinsong.cn; # HSTS的合理使用,max-age表明HSTS在浏览器中的缓存时间,includeSubdomainscam参数指定应该在所有子域上启用HSTS,preload参数表示预加载,通过Strict-

  • go module使用本地包的方法示例

    go module的使用非常简单 初始化go.mod go mod init 整理依赖包 go mod tidy 如果想缓存到vendor目录 go mod vendor 执行命令之后都会自动把依赖搞定. 但是, 如果我们是本地开发的包, 还没有远程仓库的时候, 要怎么解决本地包依赖问题呢? 使用replace将远程包替换为本地包服务 幸运的是, go module 提供了另外一个方案, replace, 这个replace怎么使用的呢? 我们先看一下一个最基本的mod文件 module GoR

随机推荐