spring cloud config server初体验

spring cloud config server可以将配置放到一个统一的地方,并且以服务的形式提供出来。

本篇来通过两个简单的例子,来说明如何创建一个基于git仓库的config server,以及客户端如何使用它。

创建一个spring cloud config server

spring cloud config server支持好几种数据源,比如:文件系统、git仓库、关系型数据库,以及Eureka和Consul。

创建一个git仓库,用来存放配置项

#	创建一个文件夹,用来作为git仓库的目录
mkdir config-repo && cd config-repo

#	创建三个配置文件,里面包含一个配置项
echo 'role=engineer' > clientA.properties
echo 'role=developer' > clientA-develop.properties
echo 'role=programmer' > clientA-test.properties

#	初始化git仓库
git init

#	将文件加入暂存区,并提交
git add .
git commit -m 'add 3 properties files'

一个包含三个配置文件的git仓库就创建好了

获取代码模板

访问https://start.spring.io/,在dependencies中选择config-server,然后生成代码模板并下载。

在这个代码模板上,我们只需要修改两个地方,就可以创建一个config server了。

1,打开application.properties文件,加入以下配置,第三行指定了config server的数据源是一个本地的git仓库

spring.application.name=config-server
server.port=8888
spring.cloud.config.server.git.uri=${HOME}/Demos/spring-cloud/config-repo

2,打开包含main方法的java文件,加入@EnableConfigServer的注解

package com.example.configserver;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;

@EnableConfigServer
@SpringBootApplication
public class ConfigServerApplication {

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

}

验证config server

启动项目,访问 http://localhost:8888/clientA/default ,会显示默认profile的配置。

访问 http://localhost:8888/clientA/test, 会显示test profile的配置

使用config server中的配置

config server已经有了,下面来看如何在应用程序中来读取它的配置项。

获取代码模板

访问https://start.spring.io/,在dependencies中选择config-client和spring web starter,然后生成代码模板并下载。

读取config server中的配置项

如果想要读取config server中的配置项,只需要两步

1、配置config server的地址

打开application.properties文件,加入以下内容

spring.cloud.config.uri=http://localhost:8888
spring.application.name=clientA
spring.cloud.config.profile=test

spring.application.name必须和config server中的文件名对应上,如果想使用config server中的其它profile的配置项,需要使用spring.cloud.config.profile来指定。

2、 使用$Value引用配置项

@RestController
public class HelloController {

    @Value("${role}")
    private String role;

    @GetMapping("/hello")
    public String hello() {
        return "hello, " + role;
    }
}

当springboot项目启动后,就会从配置中心读取对应的配置项,并注入到bean中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值