spring cloud之config的创建(三)

1、创建一个工程模块

在《spring cloud之maven工程的创建(一)》maven工程上增加一个模块叫chaotic-config,项目结构如下:
在这里插入图片描述

2、配置pom.xml

<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-config-server -->
	<dependency>
	    <groupId>org.springframework.cloud</groupId>
	    <artifactId>spring-cloud-config-server</artifactId>
	    <version>2.2.0.RELEASE</version>
	</dependency>
	<!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient -->
	<dependency>
	    <groupId>org.apache.httpcomponents</groupId>
	    <artifactId>httpclient</artifactId>
	    <version>4.5.10</version>
	</dependency>
    <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web -->
	<dependency>
	    <groupId>org.springframework.boot</groupId>
	    <artifactId>spring-boot-starter-web</artifactId>
	    <version>2.2.2.RELEASE</version>
	</dependency>
	<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-actuator -->
	<dependency>
	    <groupId>org.springframework.boot</groupId>
	    <artifactId>spring-boot-starter-actuator</artifactId>
	    <version>2.2.2.RELEASE</version>
	</dependency>
	<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-consul-discovery -->
	<dependency>
	    <groupId>org.springframework.cloud</groupId>
	    <artifactId>spring-cloud-starter-consul-discovery</artifactId>
	    <version>2.2.0.RELEASE</version>
	</dependency>

3、配置工程启动入口

@EnableConfigServer //加载服务器上的配置文件
@SpringBootApplication
@EnableDiscoveryClient //consul能动性
public class ConfigApp {
	public static void main(String[] args) {
        SpringApplication.run(ConfigApp.class, args);
    }
}

4、配置bootstrap.yml

spring: 
  application:
    name: chaotic-config
  cloud:
    consul: #向consul服务中心注册
      host: localhost
      port: 8500
    config:
      server:
        git:
          uri: https://gitee.com/heihei/chaotic.git #gitee上的git仓库名
          username: heiheiname
          password: heiheipsw
          force-pull: true #设置强行pull拉取
          default-label: master #配置文件分支
          search-paths: chaotic-config/src/main/resources/config  #配置文件所在根目录

5、配置application.yml

server: 
  port: 8501

6、添加server-dev.yml和server-prod.yml

目前内容都是如下(看真正开发的时候决定怎么配置)

server: 
  port: 8503
spring: 
  application: 
    name: chaotic-server
  cloud: 
    consul: 
      host: localhost
      port: 8500
    #注册到consul的服务名称
    discovery: 
      serviceName: chaotic-server

注意的是server-dev.yml和server.yml里面的内容一定要规范yml语法,否则解析错误如下:

在这里插入代码片Caused by: org.yaml.snakeyaml.constructor.DuplicateKeyException: while constructing a mapping
 in 'reader', line 1, column 1:
    spring: 
    ^
found duplicate key spring
 in 'reader', line 6, column 1:
    spring: 
    ^

7、启动postman测试和查看consul服务的变化

获取server.yml文件信息:
在这里插入图片描述
获取server-dev.yml信息:
在这里插入图片描述
在这里插入图片描述

8、总结

  1. 项目如果跑步起来,一定要注意cloud和boot的版本要一致。
  2. config加载git的文件默认是仓库的根目录,如果不放到根目录,一定要注意指定“search-paths: 文件名”。
  3. 遇到访问不了的问题,一定要确保git用户名和密码正确。
  4. 一定要确保yml的规范,否则解析会有问题。
  5. 加载文件是有有依可寻的,比如server-dev.yml,对应的加载路径是server/dev;完整为:http://localhost:8501/server/dev。最后一个杠杠之前的就是文件名,最后一个杠杠后面的就是对应的版本。
发布了17 篇原创文章 · 获赞 4 · 访问量 4794

猜你喜欢

转载自blog.csdn.net/qq_15054679/article/details/103501373
今日推荐