spring-cloud-config:入门教程
- spring-cloud-config:入门教程
- 前置准备
- server端开发
- 1. 引入服务端依赖:pom.xml
- 2. 编写配置文件:application.yml
- 3. 入口类启用spring cloud config server:@EnableConfigServer
- 4. 在远程仓库上建一个配置文件命名最好是{你的服务名}-{你的环境}.yml或.properties:config-client-dev.yml
- 5. 看 CONFIG-SERVER 能否拉取配置文件信息:http://localhost:9021/config-client-dev.yml
- client端开发
spring-cloud-config:入门教程
前置准备
1.下载运行注册中心
- 这里使用 Spring Cloud Consul
- 下载链接:https://www.consul.io/downloads
- 运行:
consul agent -dev
2.父工程引入 Spring Cloud 依赖
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<spring.cloud-version>Hoxton.SR6</spring.cloud-version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring.cloud-version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
server端开发
1. 引入服务端依赖:pom.xml
注册中心是必要的(server端和client都要)。这里用的是 spring-cloud-consul
<!-- 引入 Spring Cloud Config 的依赖包 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
<!-- 引入 Spring Cloud Consul 的依赖包 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
2. 编写配置文件:application.yml
server:
port: 9021
spring:
application:
name: CONFIG-SERVER
cloud:
consul:
host: localhost
port: 8500
config:
server: # 核心配置在这里。
git: # 首先到 GitHub 或者 gitee 上弄一个仓库。拿到clone那里的https链接
uri: https://gitee.com/Willing-W/spring-cloud-config-server.git
default-label: master # 哪个分支
force-pull: true # Could not fetch remote for master remote
3. 入口类启用spring cloud config server:@EnableConfigServer
@SpringBootApplication
@EnableConfigServer
public class ConfigServerApplication {
public static void main(String[] args) {
SpringApplication.run(ConfigServerApplication.class, args);
}
}
- 启动项目检查注册中心:http://localhost:8500/
4. 在远程仓库上建一个配置文件命名最好是{你的服务名}-{你的环境}.yml或.properties:config-client-dev.yml
5. 看 CONFIG-SERVER 能否拉取配置文件信息:http://localhost:9021/config-client-dev.yml
- 如果拉取成功,控制台便能看到CONFIG-SERVER已经把配置文件缓存到本地:
至此,spring-cloud-config的server端已经开发并配置完成!
client端开发
1. 引入客户端依赖:pom.xml
注意不要引错依赖包,不然跟博主一样乱搞了半天没成功  ̄□ ̄||
<!-- 引入 Spring Cloud Config 的依赖包 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<!-- 引入 Spring Cloud Consul 的依赖包 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
2. 编写配置文件:application.yml
spring:
application:
name: CONFIG-CLIENT
cloud:
consul:
host: localhost
port: 8500
config:
discovery:
enabled: true # 去注册中心获取 config server 地址
service-id: CONFIG-SERVER # 通过此service-id获取
label: master # 哪个分支
name: config-client # 配置文件名前缀
profile: dev # 配置文件名环境名
server:
port: 9031
3. 开发一个web接口测试能否从server端获取配置属性
@RestController
public class ConfigClientController {
@Value("${environment-name}")
private String envName;
@GetMapping("demo01")
public String demo01() {
System.out.println("Demo01 ok!!!");
return "Demo01 ok, environment Name: " + envName;
}
}
4. 启动项目(注意启动顺序,先启动CONFIG-SERVER),请求接口
5. 看CONFIG-CLIENT拉取到的配置属性值:http://localhost:9031/demo01
搞定!!!
ps:
千万别在 CONFIG SERVER 端添加 server.servlet.context-path,是个坑。