Spring Cloud Config入门(本地配置)

 

spring cloud config 简介

  • Spring Cloud Config为分布式系统中的外部化配置提供服务器和客户端支持。使用Config Server,您可以在所有环境中管理应用程序的外部属性。
  • Spring Cloud Config 分为两个部分 ,server端和client端。

      server端配置服务器,管理配置信息

      client端获取配置信息

创建并运行一个Spring Cloud Config Server

  • 创建一个名为config-server的应用,并添加spring-cloud-starter-parent,spring-cloud-config-server依赖,pom信息具体如下
    
    
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        4.0.0
    
        com.zcr.test
        config-server
        1.0-SNAPSHOT
        jar
        config-server
        Demo project for Spring Boot
        
            org.springframework.boot
            spring-boot-starter-parent
            1.5.2.RELEASE
        
        
            UTF-8
            UTF-8
            1.8
        
        
            
                org.springframework.cloud
                spring-cloud-config-server
            
    
            
                org.springframework.boot
                spring-boot-starter-test
                test
            
    
            
                org.springframework.cloud
                spring-cloud-starter-eureka
            
        
        
            
                
                    org.springframework.cloud
                    spring-cloud-dependencies
                    Camden.SR6
                    pom
                    import
                
            
        
        
            
                
                    org.springframework.boot
                    spring-boot-maven-plugin
                
            
        
    
  • 创建application主类,并添加@EnableConfigServer注解,代码如下
    package com.zcr.spring;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.config.server.EnableConfigServer;
    
    @SpringBootApplication
    @EnableConfigServer
    public class ConfigServerApplication {
        public static void main(String[] args) {
            SpringApplication.run(ConfigServerApplication.class,args);
        }
    }
  • 在本地创建一个配置文件db-service-dev.properties,格式如下
    sck.type=sck
    sck.url=jdbc:oracle:thin:@10.1.50.205:1521:orcl
    sck.class=oracle.jdbc.driver.OracleDriver
    sck.user=sddb
    sck.password=sddb
    eom.type=eom
    eom.url=jdbc:oracle:thin:@10.1.50.205:1521:orcl
    eom.class=oracle.jdbc.driver.OracleDriver
    eom.user=eom
    eom.password=eom
  • 在resources文件夹下创建application.properties,内容如下
    #tomcat端口号
    server.port=8888
    #配置文件在本地
    spring.profiles.active=native
    #配置文件的目录
    spring.cloud.config.server.native.search-locations=D:/workspace/GitHub/spring-config/config-file
          目录结构:     

           Spring Cloud Config入门(本地配置)_第1张图片

  • 运行应用并打开网址http://localhost:8888/db-service/dev,出现如下页面,证明配置文件发布成功

     Spring Cloud Config入门(本地配置)_第2张图片

创建并运行一个Spring Cloud Config Client

  • 创建一个名为config-client的应用,并添加spring-cloud-starter-parent,spring-cloud-starter-config,spring-boot-starter-web依赖,pom信息具体如下
    
    
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        4.0.0
    
        com.zcr.spring
        config-client
        1.0-SNAPSHOT
        
            org.springframework.boot
            spring-boot-starter-parent
            1.5.2.RELEASE
        
        
            UTF-8
            UTF-8
            1.8
        
        
            
                org.springframework.cloud
                spring-cloud-starter-config
            
    
            
                org.springframework.boot
                spring-boot-starter-web
            
    
            
                org.springframework.boot
                spring-boot-starter-test
                test
            
        
            
                
                    org.springframework.cloud
                    spring-cloud-dependencies
                    Dalston.RC1
                    pom
                    import
                
            
        
    
        
            
                
                    org.springframework.boot
                    spring-boot-maven-plugin
                
            
        
    
        
            
                spring-milestones
                Spring Milestones
                https://repo.spring.io/milestone
                
                    false
                
            
        
    
    
    
  • 在resources中创建bootstrap.properties(bootstrap.yml会在应用启动之前读取),格式如下
    #文件名
    spring.application.name=db-service
    #文件模式,默认为default
    spring.cloud.config.profile=dev
    #server端ip地址
    spring.cloud.config.uri= http://localhost:8888/
    #client端ip端口
    server.port=8881
  • 创建一个controller
    package com.zcr.spring;
    
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @SpringBootApplication
    @RestController
    public class ConfigClientApplication {
        public static void main(String[] args) {
            SpringApplication.run(ConfigClientApplication.class, args);
        }
        @Value("${sck.user}")
        String sckUser;
        @Value("${sck.password}")
        String sckPassword;
    
        @RequestMapping("/hello")
        public String showUserAndPassword(){
            String sb = "username is " + sckUser + "," + "password is " +sckPassword;
            return sb;
        }
    }
  • 启动Application,并访问http://localhost:8881/hello,出现如下界面,成功

Spring Cloud Config入门(本地配置)_第3张图片

遗留问题:1.初始化时,注入在static代码块之后,故静态代码块无法获取远程配置信息。

               2.对spring了解浅。不懂内部原理,bug调试过程中比较费劲。

               3.对spring中的注解不了解。

源码地址:https://github.com/310834626/spring-cloud-config

参考:http://www.jianshu.com/p/69dea19abf04

        http://blog.didispace.com/springcloud4/

        http://tech.lede.com/2017/06/12/rd/server/springCloudConfig/

你可能感兴趣的:(Spring Cloud Config入门(本地配置))