一、配置中心
1、配置中心的文件命名规则:
/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties
2、创建配置文件:
本例中使用git来创建远程配置文件,先创建一个名为“ springCloudConfigTest"的仓库,然后再创建一个名为“cloud-config”的文件夹,最后在这个文件夹下再创建三个文件:springcloud-config-client-dev.properties(内容:userName=张三)、springcloud-config-client-prod.properties(内容:userName=王五)、springcloud-config-client-test.properties(内容:userName=李四)。
------------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------------
二、server端运行
1、pom.xml文件中添加maven依赖:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
2、application.yml文件配置:
spring:
application:
name: cloud-config-server // 服务名称
cloud:
config:
server:
git:
uri: https://gitee.com/hykai/springCloudConfigTest.git // git地址
search-paths: cloud-config // 要访问的配置文件目录
username: userName // 你的git账户名
password: password // 你的git密码
server:
port: 9901 // 服务端口
3、启动类添加@EnableConfigServer注解:
@EnableConfigServer
@SpringBootApplication
public class SpringcloudConfigServerApplication {
public static void main(String[] args) {
SpringApplication.run(SpringcloudConfigServerApplication.class, args);
}
}
4、测试运行:
启动服务,地址栏输入“http://localhost:9901/springcloud-config-client/dev”,成功返回配置信息表示成功运行。
三、client端运行
1、pom.xml文件中添加maven依赖:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
2、bootstrap.yml文件配置:
#cloud-config-client配置信息
spring:
cloud:
config:
name: springcloud-config-client // 对应{application}部分
profile: dev // 对应{profile}部分
uri: http://localhost:9901/ // 调用配置中心的uri(server端)
label: master // git分支
3、application.yml文件配置:
spring:
application:
name: cloud-config-client // 服务名称
server:
port: 9902 // 服务端口
说明:
bootstrap.yml 用来程序引导时执行,应用于更加早期配置信息读取。可以理解成系统级别的一些参数配置,这些参数一般是不会变动的。一旦bootStrap.yml 被加载,则内容不会被覆盖。
application.yml 可以用来定义应用级别的, 应用程序特有配置信息,可以用来配置后续各个模块中需使用的公共参数等。
bootstrap.yml 先于 application.yml 加载。bootstrap 属性有高优先级,默认情况下,它们不会被本地配置覆盖。
4、编写接口测试类:
@RestController
public class ConfigController {
@Value("${userName}") // 对应配置中心文件中的userName
private String name;
@GetMapping("/test")
public String configTest() {
String conString = "";
try {
// ISO 8859-1转UTF-8,解决中文乱码问题
conString = new String(this.name.getBytes("ISO8859-1"), "UTF-8");
}
catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return conString;
}
}
5、启动类:
client端无需在启动类添加其他注解。
@SpringBootApplication
public class SpringcloudConfigClientApplication {
public static void main(String[] args) {
SpringApplication.run(SpringcloudConfigClientApplication.class, args);
}
}
6、测试运行:
注意:因为client端需要调用server端的配置,因此server端需要处于启动状态。
①bootstrap.yml文件profile改为“dev”,让其调用配置中心的springcloud-config-client-dev.properties文件,重启服务,地址栏输入“http://localhost:9902/test”,成功返回配置信息表示成功运行:
②bootstrap.yml文件profile改为“test”,让其调用配置中心的springcloud-config-client-test.properties文件,重启服务,地址栏输入“http://localhost:9902/test”,成功返回配置信息表示成功运行:
③bootstrap.yml文件profile改为“prod”,让其调用配置中心的springcloud-config-client-prod.properties文件,重启服务,地址栏输入“http://localhost:9902/test”,成功返回配置信息表示成功运行: