SpringCloud_Config_远程获取Git中配置

一.创建服务端Config模块

1.导入依赖

        <!--web依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--config server依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-server</artifactId>
            <version>3.1.2</version>
        </dependency>

2.编写主启动类

注:记得添加@EnableConfigServer注解以开启ConfigServer服务

@SpringBootApplication
@EnableConfigServer//开启ConfigServer服务
public class Config_Server_3001 {
    public static void main(String[] args) {
        SpringApplication.run(Config_Server_3001.class,args);
    }
}

3.配置yml文件

#从Git上读取配置文件
server:
  port: 3001
spring:
  application:
    name: springcloud-config-server
  cloud:
    config:
      server:
        git:
          uri: git的http连接地址

4.读取远程配置文件

配置文件名为application.yml

访问格式

# 访问格式
#  /{application}/{profile}[/{label}]
#  /{application}-{profile}.yml
#  /{label}/{application}-{profile}.yml
#  /{application}-{profile}.properties
#  /{label}/{application}-{profile}.properties

 访问 http://localhost:3001/application-dev.yml

访问 http://localhost:3001/application-test.yml

可以看到分别访问了两套环境的配置

二.创建客户端Config模块

1.导入依赖

        <!--web依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--config client依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-client</artifactId>
            <version>3.1.2</version>
        </dependency>
        <!--bootstrap依赖-->
        <!--springcloud2020.x.x之后的版本需要添加此依赖 因为官方重构了bootstrap引导配置加载的方式-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
            <version>3.1.2</version>
        </dependency>

        <!--热部署依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <version>2.6.7</version>
        </dependency>

2.编写主启动类

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

3.编写Controller层(用于展示通过服务端获取到的配置信息)

@RestController
public class ConfigClientController {
    @Value("${server.port}")
    private String port;
    @Value("${spring.application.name}")
    private String applicationName;
    @Value("${eureka.client.service-url.defaultZone}")
    private String eurekaServer;

    @RequestMapping("/Config")
    public String getConfig(){
        return "port: "+ port + "<br>" + "applicationName: " + applicationName + "<br>" + "eurekaServer: " + eurekaServer;
    }
}

4.配置yml文件

bootstrap.yml优先级高于application.yml

bootstrap.yml 应用于早期配置信息读取(系统级别配置)。一旦bootstrap.yml 被加载,其则内容将不可覆盖

bootstrap.yml

#系统级配置
#在Config Client中用于配置Config Server的相关配置
spring:
  cloud:
    config:
      uri: http://localhost:3001 #连接Git的server端口
      name: config-client #读取的配置文件名 无需后缀
      profile: dev #读取是何环境下的配置
      label: master #分支

application.yml

#用户级配置
spring:
  application:
    name: springcloud-config-client

远程配置文件

由于在bootstrap.yml中设置读取dev环境下的配置,此时应访问3101端口

可以看到访问成功,并正确返回了相关配置

若是访问3102端口呢?

显然无法访问,因为该端口的配置并未生效

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
# springcloud-zone #### 项目介绍 项目为学习用途搭建,主要包括以下模块: springcloud-register:服务注册心 (eureka-server),提供服务注册与发现功能。 springcloud-config远程配置心,分为git与native两个版本,为producer提供远程配置springcloud-connect:数据连接心,包含DB、Redis、MQ、Mail等组件的配置入口,只需其他模块在pom添加依赖并提供相关配置即可快速接入。 springcloud-producer:服务提供者,包含具体的业务逻辑实现等。 springcloud-consumer:服务消费者,从eureka server获取producer提供的服务。 springcloud-gateway:网关接口,暴露给调用方调用,包含负载均衡、重试、熔断等功能。 springcloud-zipkin:链路跟踪工具,监控并就持久化微服务集群调用链路的通畅情况,采用rabbitmq异步传输、elasticsearch负责持久化的方式集成。 #### 软件架构 1、JDK:jdk-8u181-windows-x64。 2、MAVEN:apache-maven-3.5.4 3、IDE:spring-tool-suite-3.9.3.RELEASE-e4.7.3-win32-x86_64 4、springboot:1.5.10.RELEASE。 5、springcloud:Edgware.SR2版本 #### 安装教程 需要提前安装如下程序: 1、ActiveMQ。 2、RabbitMQ。 3、Redis 4、Elasticsearch。 5、Elasticsearch-head。 6、MYSQL(执行springcloud-producer目录src/main/resources/templates/datasource.text的建表语句) #### 使用说明 项目运行顺序: 1、 springcloud-register, 2、 springcloud-config-native或者springcloud-config-git: 启动git远程配置心需要修改springcloud-producer项目的bootstrap.yml配置文件,并将配置配件上传到git上。 3、springcloud-zipkin。 4、 springcloud-producer。 5、springcloud-consumer。 6、springcloud-gateway. 注: 在测试gateway负载均衡时可以启动单个项目的多个实例,具体方式如下: 1、项目启动类右键run as->run configurations..,打开配置框。 2、java application右键new,打开新建窗口。 3、顶部tab选Main,在name填写启动类名称,project填写项目名称,main class填写启动类详细路径+类名。 4、顶部tab选Arguments,在VM arguments填写-Dserver.port=端口号,比如-Dserver.port=8080 5、点击run即可以配置的端口号启动多个项目实例了。 #### 参与贡献 ningchongqing

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值