首页 > 其他分享 >6、如何获取配置中心的配置

6、如何获取配置中心的配置

时间:2023-06-02 17:06:32浏览次数:48  
标签:中心 spring 配置 springframework 获取 client org config cloud


公众号:java乐园

源码: https://gitee.com/hjj520/spring-cloud-2.x/ 在《配置中心》这一篇博文里学习了如何git获取配置文件。大概的流程可以用下图来概括。

6、如何获取配置中心的配置_springcloud


《配置中心》这篇博文说的是Config Server,本篇将和大家看看如何编写一个Config Client从Config Server获取配置。

1、 先在仓库中创建如下配置文件(具体参考下面地址)

https://gitee.com/hjj520/spring-cloud-2.x/tree/master/config-repos/sc-config-client

2、 创建maven项目sc-config-client,对应的pom.xml如下

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<groupId>spring-cloud</groupId>
	<artifactId>sc-config-client</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>sc-config-client</name>
	<url>http://maven.apache.org</url>

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.0.4.RELEASE</version>
	</parent>

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dependencies</artifactId>
				<version>Finchley.RELEASE</version>
				<type>pom</type>
			</dependency>

		</dependencies>
	</dependencyManagement>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<maven.compiler.source>1.8</maven.compiler.source>
		<maven.compiler.target>1.8</maven.compiler.target>
	</properties>
	<dependencies>

		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-config</artifactId>
			<version>2.0.1.RELEASE</version>
		</dependency>

		<!-- 
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-config-client</artifactId>
			<version>2.0.1.RELEASE</version>
		</dependency>
		 -->

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
			<version>2.0.1.RELEASE</version>
		</dependency>

	</dependencies>
</project>

其中:spring-cloud-starter-config与spring-cloud-config-client可以二选一,但是根据选择的依赖不同对应的配置文件有些许不一样。spring-cloud-starter-config已经包含spring-cloud-config-client,所以选择依赖spring-cloud-starter-config。

3、 创建配置文件bootstrap.yml

#服务端口
server:
  port: 8200

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:5001/eureka/
      
spring:
  application:
    name: sc-config-client
  cloud:
    config:
      label: master # 配置文件所在分支
      #uri: http://127.0.0.1:8100/  #配置服务中心
      profile: dev  # dev根据具体情况来修改
      discovery:
        serviceId: sc-config-server #配置服务实例名称
        enabled: true  #开启配置服务发现

备注:sc-config-server为配置服务实例名称,对应sc-config-server项目的bootstrap.yml配置文件的如下配置项

6、如何获取配置中心的配置_spring_02


4、 创建启动类ConfigClientApplication.java

package sc.config.client;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
//import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;

@SpringBootApplication
//@EnableDiscoveryClient
@EnableEurekaClient
public class ConfigClientApplication {

	public static void main(String[] args) {
		SpringApplication.run(ConfigClientApplication.class, args);
	}
}

5、 为了验证是否能不能在config server获取到配置项,创建一个restful类型的controller:ConfigController.java

package sc.config.client.controller;

import java.util.HashMap;
import java.util.Map;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class ConfigController {

	// git配置文件里的key
	@Value("${jdbc.driverClassName}") 
    private String driverClassName;
	
	@Value("${jdbc.url}") 
    private String url;
	
	@Value("${jdbc.username}") 
    private String username;
	
	@Value("${jdbc.password}") 
    private String password;
	
	@RequestMapping(value="/config/getValue")
	public Map<String, Object> getConfigFromGit() {
		Map<String, Object> result = new HashMap<String, Object>();
		result.put("code", "000000");
		result.put("msg", "ok");
		Map<String, Object> body = new HashMap<String, Object>();
		body.put("driverClassName", driverClassName);
		body.put("url", url);
		body.put("username", username);
		body.put("password", password);
		result.put("body", body);
		return result;
	}

}

6、 先启动注册中心,对应的项目为sc-eureka-server;再启动config sever,对应的项目为sc-config-server。然后验证一下config sever是否启动成功

方式一:访问注册中心,可以看到config sever已经注册到注册中心了

6、如何获取配置中心的配置_maven_03


方式二:访问配置文件对应的路径看看是否可以获取配置文件,如果能获取到说明启动成功

6、如何获取配置中心的配置_配置文件_04


给大家一一对应一下yml问下的访问方式,这些在config server那篇博文只是大概提了一下:

{[/{name}-{profiles}.yml || /{name}-{profiles}.yaml],methods=[GET]}:

http://127.0.0.1:8100/application-dev.yml {[/{name}/{profiles:.[^-].}],methods=[GET]}:

http://127.0.0.1:8100/application/dev

{[/{name}/{profiles}/{label:.*}],methods=[GET]}: http://127.0.0.1:8100/application/dev/master

{[/{label}/{name}-{profiles}.yml || /{label}/{name}-{profiles}.yaml],methods=[GET]}:

http://127.0.0.1:8100/master/application-dev.yml

7、 启动config client对应的项目sc-config-client

当spring.cloud.config.profile的值为dev时访问http://127.0.0.1:8200/config/getValue

6、如何获取配置中心的配置_springcloud_05


当spring.cloud.config.profile的值为prd时访问http://127.0.0.1:8200/config/getValue

6、如何获取配置中心的配置_spring_06


可以看到spring.cloud.config.profile配置不一样时,分配获取到git仓库的application-dev.yml和application-prd.yml配置文件的内容


标签:中心,spring,配置,springframework,获取,client,org,config,cloud
From: https://blog.51cto.com/u_13538361/6404113

相关文章

  • 传奇微端配置补丁密码错误,传奇pak密码错误解决方法
    这几天帮很多朋友配置GOM引擎微端服务器,配置微端其实也没有技术要求,熟能生巧,做得多了,感觉真的不难,但这两天发现了一个小问题,就是在配置登录器的时候,PAK读取规则里面,全部正确,配置微端服务器的时候,发现最下面有一些PAK补丁文件显示密码不正确,这个是什么原因导致的呢?大家看到这里就很......
  • Oracle主要配置文件
    Oracle主要配置文件介绍(转帖)Oracle主要配置文件介绍:  profile文件,oratab文件,数据库实例初始化文件initSID.ora,监听配置文件,sqlnet.ora文件,tnsnames.ora文件1.2Oracle主要配置文件介绍1.2.1/etc/profile文件          系统级的环......
  • mongodb安装和配置
    1、下载mongodbhttps://www.mongodb.org/dl/linux/x86_64-rhel62?_ga=2.188218154.323484055.1507690032-19904153.15011199572、安装mongodbtar-zxvfmongodb-linux-x86_64-rhel62-3.4.9.gzmvmongodb-linux-x86_64-rhel62-3.4.9mongodb-3.4.9mk......
  • redis主从配置
    1、下载redis3.2.3wgethttp://download.redis.io/releases/redis-3.2.3.tar.gztar-zxvfredis-3.2.3.tar.gzcdredis-3.2.3makemaketest//检查一下看有没有问题makeinstall安装完之后,会在src目录下生成几个可执行文件,分别是mkreleasehdr.......
  • Mapbox样式配置之过滤器表达式
    需求如一个图层,有个属性字段m,值可能有1,2,3,我想等于1和2的时候给红色,等于3的时候给黄色。解决办法在Mapbox中,你可以使用样式表(Style)来配置图层的样式,包括根据属性字段值来设置不同的颜色。以下是一个示例,演示如何根据属性字段m的值设置图层的颜色:{"version":8,"so......
  • 工厂模式配置servlet(servlet升级版)
    1、创建一个类点击查看代码packagecom.bh.controller;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjava.io.IOException;impo......
  • linux手动配置网卡 基本教程 学习分享,如有错误欢迎指出
    首先下载ping工具  本人使用pinglnfoview  工具一  ping具体的网段里面的IP地址,查询自己想修改的ip地址是否被占用判断某一个ip是否可以用,同一网段不重复(使用ping工具)先查询具体的网段范围在虚拟机里面在编辑选项里面点击虚拟网络编辑器进去之后先点击1,后点击2......
  • 学Java必备EditPlus的安装与配置
    Editplus是一款很受欢迎的编辑器。简单的解释editplus软件的话,它就是一款功能更强大的记事本。除了普通的文本编辑之外,还有很多的其他特点。这篇文章详细讲讲Editplus的安装配置,配合视频观看学习效果更佳动力节点老杜的Java17版入门教程,详细讲了关于Editplus的安装配置这套JavaSE教......
  • 读配置、讲原理、看面试真题,我只能帮你到这了。。。
    当我在写一上来就主从、集群、哨兵,这谁受得了的时候,好多小伙伴就迫不及待的留言想看这些模式了,今天我们就从配置文件、设计原理、面试真题三个方面来聊一聊Redis的主从复制。在Redis复制的基础上,使用和配置主从复制非常简单,能使得从Redis服务器(下文称replica)能精确的复制主......
  • 好饭不怕晚,扒一下Redis配置文件的底Ku
    忙碌是一种幸福,让我们没时间体会痛苦;奔波是一种快乐,让我们真实地感受生活;疲惫是一种享受,让我们无暇空虚。这几句话就能简单概括我最近的工作和生活。好多小伙伴都来私信“催更”,今天它来了!为了表达阿Q的歉意,特赠送「亿级流量Java高并发与网络编程实战」一本,规则见文末。在往期的文......