前言
已经4天没有更新了,怎么说呢,就很忙,很忙,很忙。主要还是毕业以及从一个城市到另外一个城市的事情,这段时间尽最大可能保持2,3天一更,最晚不超过4,5天一更。
415f82b9ly1glozkiyu0tj20c80a3wes
随着模块的增多,会出现配置文件繁杂的通病,每次都要打开好多层目录才能找到配置文件,SpringCloud中的Config组件就是为了解决这个问题,通过简单的配置就能实现配置文件的统一管理。
Config服务端
引入Config服务端
创建Config空父模块,在下面建立一个config-server子模块,修改「子模块的pom文件」
代码语言:javascript复制❝注意是子模块的pom文件,不像以前一样修改的是空父模块的pom文件 ❞
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
</dependencies>
配置文件
因为暂时没必要注册进Eureka中,所以配置文件的编写还是比较简单的
代码语言:javascript复制server:
port: 8101
spring:
cloud:
config:
server:
git:
uri: https://gitee.com/cutey_none/springcloud-study-config
username:
password:
label: master
spring.cloud.config.server.git.uri
:存放文件的地址,到时候客户端就从这里获取配置文件,可以本地,也可以是git
❝如果是公开仓库,那么
username
和password
不用写 ❞
因为创建的springcloud-study-config
仓库设置的权限开放的,所以直接用我的也行,自己创建也行,就正常github或者gitee创建一个仓库就好。
❝仓库放置的是各个微服务的配置文件 ❞
例子是管理config-client
微服务(后面会创建)的配置文件,所以需要在仓库中创建一个config-client-dev.properties
(-dev表示是开发环境下的配置文件)
config-client-dev.properties
文件的内容如下,可以看作是**config-client
服务的某些配置**
主启动类
增加@EnableConfigServer
注解以提供config服务支持
@SpringBootApplication
@EnableConfigServer
public class ConfigServer8101 {
public static void main(String[] args) {
SpringApplication.run(ConfigServer8101.class, args);
}
}
测试
SpringCloud Config有自己http服务访问资源的形式
/{application}/{profile}[/{label}]
>>/config-client/dev
/{application}-{profile}.yml
>>/config-client-dev.yml
/{label}/{application}-{profile}.yml
>>/master/config-client-dev.yml
/{application}-{profile}.properties
>>/config-client-dev.properties
/{label}/{application}-{profile}.properties
>>/master/config-client-profile.properties
单个运行ConfigServer8101
项目即可,用上述5种方式访问资源,可以看到均能成功从服务端访问资源
config客户端
引入config客户端
前面一直说的config-client
就是接下来要创建的模块,最终的项目结构目录如下
接着修改config-client9501
模块的pom文件,注意服务端和客户端引入的依赖是不一样的
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
</dependencies>
配置文件
❝配置文件注意命名是
bootstrap.yml
❞
因为客户端要设置服务端的uri,所以应该「优先加载客户端配置文件」
代码语言:javascript复制server:
port: 9501
spring:
application:
name: config-client
cloud:
config:
profile: dev
label: master
uri: http://localhost:8101
spring.cloud.config.uri
:服务端的地址,去哪里取配置文件
主启动类和业务类
代码语言:javascript复制@SpringBootApplication
@RestController
public class ConfigClient9501 {
public static void main(String[] args) {
SpringApplication.run(ConfigClient9501.class, args);
}
@Value("${name}")
String name;
@GetMapping("/hi")
public String hello() {
return "hello, " name;
}
}
❝在这里可能会遇到提示找不到占位符${name},那肯定是哪一方面没有按照步骤来了 ❞
测试
注意哈,上面客户端的配置文件中是没有name这个变量的
服务端的项目不用停止,再开启config-client9501
项目,开启的项目如下
下面访问localhost:9501/hi ,正常的情况下可以看到如下
其实已经抽蛮多的零碎时间来写了,但是有时候遇到了一些问题也还是需要尽可能弄懂再通俗地讲出来,希望能帮到看这篇文章的小伙伴啦!!!