spring-cloud-config:入门教程

spring-cloud-config:入门教程

前置准备

1.下载运行注册中心

  • 这里使用 Spring Cloud Consul
  • 下载链接:https://www.consul.io/downloads
  • 运行:
consul agent -dev

2.父工程引入 Spring Cloud 依赖

	<properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <spring.cloud-version>Hoxton.SR6</spring.cloud-version>
    </properties>
    
	<dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring.cloud-version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

server端开发

1. 引入服务端依赖:pom.xml

注册中心是必要的(server端和client都要)。这里用的是 spring-cloud-consul

		<!-- 引入 Spring Cloud Config 的依赖包 -->
		<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-server</artifactId>
        </dependency>

		<!-- 引入 Spring Cloud Consul 的依赖包 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-consul-discovery</artifactId>
        </dependency>

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

2. 编写配置文件:application.yml

server:
  port: 9021

spring:
  application:
    name: CONFIG-SERVER

  cloud:
    consul:
      host: localhost
      port: 8500
    
    config:
      server:	# 核心配置在这里。
        git:	# 首先到 GitHub 或者 gitee 上弄一个仓库。拿到clone那里的https链接
          uri: https://gitee.com/Willing-W/spring-cloud-config-server.git
          default-label: master	# 哪个分支
          force-pull: true		# Could not fetch remote for master remote

3. 入口类启用spring cloud config server:@EnableConfigServer

@SpringBootApplication
@EnableConfigServer
public class ConfigServerApplication {

    public static void main(String[] args) {
        SpringApplication.run(ConfigServerApplication.class, args);
    }
}
  • 启动项目检查注册中心http://localhost:8500/
    注册中心config server的状态

4. 在远程仓库上建一个配置文件命名最好是{你的服务名}-{你的环境}.yml或.propertiesconfig-client-dev.yml

远程仓库建配置文件

5. 看 CONFIG-SERVER 能否拉取配置文件信息:http://localhost:9021/config-client-dev.ymlconfig server 拉取远程仓库配置文件信息

  • 如果拉取成功,控制台便能看到CONFIG-SERVER已经把配置文件缓存到本地:
    config server的git连接情况
    至此,spring-cloud-config的server端已经开发并配置完成!

client端开发

1. 引入客户端依赖:pom.xml

注意不要引错依赖包,不然跟博主一样乱搞了半天没成功  ̄□ ̄||

		<!-- 引入 Spring Cloud Config 的依赖包 -->
		<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
        </dependency>

		<!-- 引入 Spring Cloud Consul 的依赖包 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-consul-discovery</artifactId>
        </dependency>

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

2. 编写配置文件:application.yml

spring:
  application:
    name: CONFIG-CLIENT
  cloud:
    consul:
      host: localhost
      port: 8500

    config:
      discovery:
        enabled: true               # 去注册中心获取 config server 地址
        service-id: CONFIG-SERVER   # 通过此service-id获取

      label: master                 # 哪个分支
      name: config-client           # 配置文件名前缀
      profile: dev                  # 配置文件名环境名


server:
  port: 9031

3. 开发一个web接口测试能否从server端获取配置属性

@RestController
public class ConfigClientController {

    @Value("${environment-name}")
    private String envName;

    @GetMapping("demo01")
    public String demo01() {

        System.out.println("Demo01 ok!!!");

        return "Demo01 ok, environment Name: " + envName;
    }
}

4. 启动项目(注意启动顺序,先启动CONFIG-SERVER),请求接口

启动config client控制台输出信息

5. 看CONFIG-CLIENT拉取到的配置属性值:http://localhost:9031/demo01

CONFIG-CLIENT拉取到的配置属性值


搞定!!!
ps:

千万别在 CONFIG SERVER 端添加 server.servlet.context-path,是个坑。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值