Spring Cloud 学习笔记(二)-Spring Cloud Config Server

*Spring Cloud 学习笔记(二)-Spring Cloud Config Server

**搭建过程

在上一篇搭建了基本的eureka的server和client用来实验,今天实验spring cloud config用以实现分布式配置管理中心
话不多说,创建新的模块wat-spring-config当作server如下图

https://www.cnblogs.com/shijunyu/p/9639109.html

  1. 为了后续的测试,需要在git上新建一个工程,增加分支dev,之后新建文件wat-spring-config-server-dev.yml内容如下:

    config:
    	server:
    		test: this is a test
    
  2. 修改工程的pom文件配置如下:

    <?xml version="1.0"?>
    <project
    	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
    	xmlns="http://maven.apache.org/POM/4.0.0"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    	<modelVersion>4.0.0</modelVersion>
    	<parent>
    		<groupId>com.wat</groupId>
    		<artifactId>wat-spring-cloud-study</artifactId>
    		<version>${project.version}</version>
    	</parent>
    	<artifactId>wat-spring-config</artifactId>
    	<name>wat-spring-config</name>
    	<url>http://maven.apache.org</url>
    	<dependencies>
    		<dependency>
    			<groupId>org.springframework.cloud</groupId>
    			<artifactId>spring-cloud-starter-config</artifactId>
    		</dependency>
    
    		<dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-starter-web</artifactId>
    		</dependency>
    
    		<dependency>
    			<groupId>org.springframework.cloud</groupId>
    			<artifactId>spring-cloud-config-server</artifactId>
    		</dependency>
    
    	</dependencies>
    </project>
    
  3. 增加配置文件/src/main/resources/application.yml内容如下:

    # spring cloud settings
    spring:
      config:
    	name: wat-spring-config-server
      cloud:
    	config:
    	  label: dev
    	  profile: dev
    	  server:
    		git:
    		  uri: http://**************.git
    		  username: *********
    		  password: *********
    		  
    # server port
    server:
      port: 8888
    

    在这做一点说明,在config的配置文件中存在三个值spring.cloud.config.label、spring.cloud.config.profile、spring.config.name这三个值用做识别git上面的配置文件位置,参照如下规则:

    /{application}/{profile}[/{label}]
    /{application}-{profile}.yml
    /{label}/{application}-{profile}.yml
    /{application}-{profile}.properties
    /{label}/{application}-{profile}.properties

    •application:表示应用名称,在client中通过spring.config.name配置
    •profile:表示获取指定环境下配置,例如开发环境、测试环境、生产环境 默认值default,实际开发中可以是 dev、test、demo、production等
    •label: git标签,默认值master

  4. 添加代码src/main/java/org/wat/spring/config/App.java

    package org.wat.spring.config;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
    import org.springframework.cloud.config.server.EnableConfigServer;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.web.bind.annotation.RestController;
    
    @Configuration
    @EnableAutoConfiguration
    @RestController
    @EnableConfigServer
    public class App {
    
    	public static void main(String[] args) {
    		SpringApplication.run(App.class, args);
    	}
    
    }
    
  5. 以本程序为例启动程序,访问http://localhost:8888/wat-spring-config-server/dev/dev/,可以看到会返回一个json

    {
    	"name": "wat-spring-config-server",
    	"profiles": [
    		"dev"
    	],
    	"label": "dev",
    	"version": "20308dee8ac6e1e9b47e781323dbf136953161ea",
    	"state": null,
    	"propertySources": [
    		{
    			"name": "http://*******.git/wat-spring-config-server-dev.yml",
    			"source": {
    				"config.server.test": "this is a test"
    			}
    		}
    	]
    }
    

第二天由于遇到了些问题,因此发布的晚了点,希望能够坚持住
转载请注明出处:https://www.cnblogs.com/shijunyu/p/9639109.html

posted @ 2018-09-14 09:31  A_Little_Dream  阅读(166)  评论(0编辑  收藏  举报