springCloud--configServer 分布式配置中心项目中使用(10-2)

x33g5p2x  于2021-12-18 转载在 其他  
字(3.6k)|赞(0)|评价(0)|浏览(411)

前提:

applicaiton.yml是用户级的资源配置项
bootstrap.yml 是系统级别的,优先级更高
SpringCloud 会 创建一个Bootstrap Context,作为spring应用的Applicaiton Context,的父上下文,初始化的时候Bootstrap Context负责从外部源加载配置属性并解析配置 ,这两个上下文共享一个从外部获取 Environment,Bootstrap 属性有高优先级,默认情况下 他们不会本地配置覆盖,Bootstrap Context和Applicaiton Context有着 不同 的约定
所以新增一个 bootstrap文件 保证 Bootstrap Context 和Applicaiton Context 配置的分离

1)配置你所需的配置.yml文件

创建 分布式所需 yml 文件 uer.yml
创建好保存utf-8 保存文件

创建好上传到Github上

上传成功

下面就是创建一个项目做个

microservicecloud-config-client-8090客户端

依赖

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

pom文件

<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>
  <parent>
    <groupId>com.xxx</groupId>
    <artifactId>microservicecloud</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
  <artifactId>microservicecloud-config-client-8090</artifactId>
<dependencies>
		
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-config</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-actuator</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-hystrix</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-eureka</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-config</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-jetty</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>springloaded</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-devtools</artifactId>
		</dependency>
	</dependencies>
</project>

bootstrap.yml 是系统级别的,优先级更高

spring:
  cloud:
    config:
      name: user #需要从github上读取的资源名称,注意没有yml后缀名
      profile: kai   #本次访问的配置项
      label: master   
      uri: http://127.0.0.1:8089  #本微服务启动后先去找8089号服务

注意上传github的文件user.yml 要和 bootstrap.yml bootstrap.yml里的name 一样

application.yml

spring:
  application:
    name: user

启动类

package com.xxx;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.netflix.zuul.filters.discovery.PatternServiceRouteMapper;

@SpringBootApplication

public class UserConfigClientApp {

  public static void main(String[] args) {

	  SpringApplication.run(UserConfigClientApp.class, args);
	  
}
	
}

写个方法就可以测试 配置

启动项 测试 提供者 (microservicecloud-config-8089)消费者(microservicecloud-config-client-8090)

打开页面访问
因为我在 bootstrap.yml开启 是 kai 所以是端口是8081
这样就是成功访问到了 说明 分布式配置生效 了

现在去bootstrap.yml开启 test 在去测试一下

相关文章