首先在创建项目的时候就要对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节点。
本实例用作参考,有疑问请看官方文档。