Springcloud Config Server支持本地和远程git配置自由切换

本博文将介绍Springcloud Config Server服务如何通过简单配置切换本地和远程配置文件的读取

1.项目目录

在这里插入图片描述

2.配置文件

application.yml

#通过spring.profiles.active实现配置切换,当native读取本地配置,git读取远程配置

server:
   port: 18100
spring:
   application:
      name: config-server
   profiles:
     active: native # native读取本地配置,git读取远程配置
   security:
      basic:
         enabled: true
      user:
         name: admin
         password: 111111   
   cloud:
      config:
         discovery:
            enabled: true
            service-id: configer-server
eureka:
   instance:
     hostname: ${spring.cloud.client.ipaddress}
     preferIpAddress: false
     instanceId: ${spring.cloud.client.ipaddress}:${server.port}
   server:
      peer-node-read-timeout-ms: 2000
   client:
      serviceUrl:
         defaultZone: http://${register.username}:${register.password}@localhost:15430/eureka/       
register:
   username: admin
   password: 111111

application-git.yml #远程配置

# 配置git的地址及用户名密码
spring:
   cloud:
      config:
         server:
            git:
               uri: http://gitlab/config/my-config.git
               search-paths: config
               username: config
               password: 111111

application-native.yml 本地配置

spring:
  cloud:
    config:
      server:
        native:
          searchLocations: /Users/xx/config-server

3.配置访问

(1)本地配置访问 spring.profiles.active配置为native时

在本地 /Users/xx/config-server目录创建一个test-dev.yml,内容如下:

source: native

浏览器输入http://localhost:18100/test/dev

{"name":"test","profiles":["dev"],"label":null,"version":null,"state":null,"propertySources":[{"name":"file:/Users/xx/config-server/test-dev.yml","source":{"source":"native"}}]}
(2)远程配置访问 spring.profiles.active配置为git时

gitlab上创建my-config项目,添加test-dev.yml配置文件

在这里插入图片描述
浏览器输入http://localhost:18100/test/dev/main

{"name":"test","profiles":["dev"],"label":"main","version":null,"state":null,"propertySources":[{"name":"gitlab/config/my-config.git/config/test-dev.yml","source":{"source":"git"}}]}

4.配置中心pom.xml

<?xml version="1.0"?>
<project
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
	xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>cn.ch.mind</groupId>
		<artifactId>cloud-xx-cloud</artifactId>
		<version>0.0.1-SNAPSHOT</version>
	</parent>
	<artifactId>cloud-boss-config-server</artifactId>
	<name>cloud-boss-config-server</name>
	<url>http://maven.apache.org</url>
	<packaging>jar</packaging>
	<description>配置中心</description>
	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>


	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-log4j2</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-config-server</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-security</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-actuator</artifactId>
		</dependency>
	</dependencies>
</project>

5.客户端如何获取配置

客户端配置yml文件做配置如下说明

当配置文件名称文test-dev.yml时
(1)服务名称为test
(2)profile为dev
(3)label为git的分支名称,本地配置时可以不写


spring:
   application:
      name: test #服务名称,需要与文件名称对应
   cloud:
      config:
         discovery:
            enabled: true
            service-id: config-server
         profile: dev #文件名后半部分对应 test-dev.yml时 profile为dev
         label: main #分支
         username: admin
         password: 111111

eureka:
   instance:
      hostname: localhost
      preferIpAddress: false
      instanceId: ${spring.cloud.client.ipaddress}:${server.port}
   client:
      serviceUrl:
         defaultZone: http://${register.username}:${register.password}@localhost:15430/eureka/
      enabled: true
register:
   username: admin
   password: 111111
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值