Spring Cloud 之 全局配置

  在微服务架构中,全局配置的重要性不言而喻。SpringCloud的全局配置存储主要基于 Git 来实现,即配置信息存储在Git服务器,以统一的方式对外提供访问。在使用上分为 ConfigServer和ConfigClient这两个角色。 

  一. ConfigServer的应用,这也是一个基于SpringBoot和web应用。启动后做为配置服务器对外提供访问。

         1. application.properties文件配置

         

server.port=8888
spring.cloud.config.server.git.uri=https://gitee.com/xxxx/config-repo
spring.cloud.config.server.git.username={帐号}
spring.cloud.config.server.git.password={密码}

 

       2 .pom文件主要内容

<dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-server</artifactId>
        </dependency>
    </dependencies>

 

      3. 启动类

@SpringBootApplication
@EnableConfigServer
public class App 
{
    public static void main( String[] args )
    {
        SpringApplication.run(App.class, args) ;
    }
}

 

     二. ConfigClient 即配置应用端 , 一般就是具体的要用到全局配置信息的项目

       1. bootstrap.yml文件,由于配置统一放在git服务器上,所以各个应用就无需使用 application.yml 或者 application.properties文件

spring:
 application:
  name: mockservices
 cloud:
  config:
   uri: http://127.0.0.1:8888
   label: branch1     // 表示具体应用配置仓库中哪个分支

     configClient客户端应用会应用到配置仓库中哪些配置文件由bootstrap.yml文件中的3个配置项决定:

  •  spring.application.name   它的value决定加载除 application.properties 或  application.yml 之外的配置文件名
  •  spring.cloud.config.label  决定具体应用配置仓库中哪个分支
  •  spring.profiles.active  决定加载哪些profile对应的配置

 

        2.  应用配置的代码

@RunWith(SpringRunner.class)
@SpringBootTest(classes = MockApp.class)
public class ConfigTest {
    
    @Value("${name}")
    private String name ;
    
    @Test
    public void test() {
        System.out.println(name);
    }

} 

 

     3. pom 文件的必要配置

 <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>

  <dependencies>
    <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>
        
        
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
        </dependency>
        
  </dependencies>

 

 

    

    

posted @ 2019-06-13 11:20  杭州胡欣  阅读(1242)  评论(0编辑  收藏  举报