spring cloud中使用config server和config client来统一管理配置文件

首先在创建项目的时候就要对spring boot版本进行选择,本demo用的是1.5.10.RELEASE,有些版本不适合,使用后对导致报错等问题。

在使用过程中server是一个项目,client是一个项目,然后还需要用到git仓库,在git仓库上建立一个项目仓库用于测试本demo。

<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.10.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>

server端用的是: 需要注意的是,本人没有加版本号会报错,但是官方文档上是没有报错的

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

 这个是本人使用的。

<dependency>
		<groupId>org.springframework.cloud</groupId>
		<artifactId>spring-cloud-config-server</artifactId>
		<version>1.4.1.RELEASE</version>
	</dependency>

然后在启动类上面加上@EnableConfigServer注解。

然后在application.yml中加上如下配置:

spring:
  cloud:
    config:
      server:
        git:
          uri: https://github.com/……/…….git
#上面这个地址是自己的git仓库上的地址。

server:
  port: 8052

在git中的两个测试demo的文件:

两个文件的内容为:

第一个内容:profile: profile-default

第二个内容:profile: profile-dev

通过官网上说可以通过如下方式类访问:

/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties

然后在浏览器中输入http://localhost:8052/master/foobar-dev.yml来查看自己的configserver是否成功,会有如下结果。

当然也可以随便输入如:http://localhost:8052/master/aaa-dev.yml得到的结果是默认的application.yml中的内容,因为根本没有叫aaa的项目名称。

服务端测试完成后该客户端了。

spring boot版本相同

<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.10.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>

然后是客户端导入:

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

然后是controller中用于测试的端点:

@RestController
public class ConfigClientController {

	@Value("${profile}") //用于获取在git仓库中的配置文件的属性。
	private String profile;
	
	@RequestMapping("/profile")
	public String getProfile() {
		return this.profile;
		
	}
	
}

配置好项目端口:

server:
  port: 8053

最后是bootstrap.yml中的配置内容,需要注意的是在bootstrap.yml中的内容是预先加载的内容,比application.properties和application.yml优先级还高。

spring: 
  cloud: 
    config: 
      uri: http://localhost:8052
      profile: dev #在项目名称后面-dev的内容,简介。
      label: master  #当configserver的后端存储是Git时,默认是master
  application:
    name: foobar #会在git上找和name相同的配置文件,如果找不到,就是默认的配置文件。

最后访问http://localhost:8053/profile节点。

本实例用作参考,有疑问请看官方文档。

猜你喜欢

转载自blog.csdn.net/qq_33868430/article/details/82117350
今日推荐