springcloud之Config初识篇—客户端获取配置文件

我们的每个有配置文件的服务都是config的客户端。客户端通过调用服务端获取远程仓库的配置文件,它自身不会和远程仓库做交互。

1、maven依赖

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--config客户端-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

2、yml配置
PS:这里使用bootstrap.yml因为使用Config的原因项目需要在开始启动加载的时候就获得配置文件信息,bootstrap的加载优先级高于application所以使用Config的话需要将application.yml改为bootstrap.yml否则启动时会报错。

spring:
  application:
    name: config-client
  cloud:
    config:
      #和下面的discovery互斥(不使用eureka 的话可以使用这种方式)
#      uri:
#        - http://localhost:8100
      discovery:
        enabled: true
        # configserver的服务id,我们通过sever获取远程仓库的信息  
        service-id: config-server
      profile: dev
      label: master

server:
  port: 8011
eureka:
  instance:
    instance-id: config-client
    hostname: config-client
  client:
    service-url:
      defaultZone: http://eurekaServer:8700/eurekaServer/eureka
#自定义配置
name: "this is name"
time: 123

3、java配置类

@EnableEurekaClient
@SpringBootApplication
public class ConfigClientApplication {

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

}

4、编写一个测试类

import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * Created by py
 */
@RefreshScope
@RestController
public class FirstController {
    @Value("${name}")
    private String name;
    @Value("${time}")
    private String time;

    @RequestMapping("/firstConfig")
    public String queryConfigInfo(){
        System.out.println("name:"+name);
        System.out.println("time:"+time);
        return name+"=="+time;
    }
}

5、启动服务

6、请求服务(获取到远程配置文件的信息)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值