Spring Cloud Config 는 로 컬 프로필 방식 을 사용 합 니 다.

프로필
분포 식 시스템 에 서 는 서비스 수량 이 많 기 때문에 서비스 프로필 의 통일 적 인 관 리 를 편리 하 게 하고 실시 간 으로 업데이트 하기 위해 분포 식 설정 센터 구성 요소 가 필요 합 니 다.
Spring Cloud 에는 분포 식 설정 센터 구성 요소 인 spring cloud config 가 있 습 니 다.설정 서 비 스 를 설정 서비스의 메모리(즉 로 컬)에 두 는 것 도 지원 하고 원 격 Git 창고 에 두 는 것 도 지원 합 니 다.
spring cloud config 구성 요소 에서 두 개의 역할 로 나 뉘 는데 하 나 는 config server 이 고 다른 하 나 는 config client 입 니 다.
배치
2.1 스프링 클 라 우 드 구성 서버 프로젝트
1 pom.xml 에서 Config Server 에 필요 한 가방 가 져 오기

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-server</artifactId>
        </dependency>
2 애플 리 케 이 션 클래스 에@EnableConfigServer 설명 추가

package com.sunbufu;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;
@EnableConfigServer
@SpringBootApplication
public class ConfigServerApplication {
    public static void main(String[] args) {
        SpringApplication.run(ConfigServerApplication.class, args);
    }
}
3.프로필 application.yml 을 수정 하고 로 컬 클 라 이언 트 프로필 의 경 로 를 지정 합 니 다.

spring:
  profiles:
    active: native
  cloud:
    config:
      server:
        native:
          searchLocations: F:/conf
4 클 라 이언 트 프로필 준비
配置文件路径
client-dev.yml 파일 의 내용:

server:
  #   0,           
  port: 8081
nickName: world
2.2 스프링 클 라 우 드 구성 클 라 이언 트 프로젝트
1 pom.xml 에서 Config Client 에 필요 한 가방 가 져 오기(Config Server 설정 과 다 름)

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
        </dependency>
2 src/main/resources 에서 boottstrap.yml 파일 을 새로 만 듭 니 다.
boottstrap 파일 은 애플 리 케 이 션 파일 전에 불 러 옵 니 다.일반적으로 변 하지 않 습 니 다.

spring:
  application:
    name: client
  cloud:
    config:
      uri: http://127.0.0.1:8888
      profile: dev
      label: master
자원 파일 맵 은 다음 과 같 습 니 다:

/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties
3 읽 은 설정 을 표시 하기 위해 HelloController 를 새로 만 듭 니 다.

package com.sunbufu.controller;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
    @Value("${nickName}")
    private String nickName;
    @RequestMapping("/hello")
    public String hello() {
        return "hello " + nickName;
    }
}
效果
3.총화
원본 주소:https://github.com/sunbufu/sunbufu-cloud
svn 이나 git 를 사용 하 는 것 이 설정 파일 을 직접 수정 하 는 것 보다 편리 하 다 고 생각 하 므 로 기록 합 니 다.
spring cloud config 로 컬 프로필 읽 기
1.maven 프로젝트 를 만 들 고 spring boot 시작 의존 도 를 도입 합 니 다.

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.7.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.wxz</groupId>
    <artifactId>cloud-config-demo3</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>cloud-config-demo3</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <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>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>
새 config-server 모듈,의존 도입

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.wxz</groupId>
        <artifactId>cloud-config-demo3</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.wxz</groupId>
    <artifactId>config-server</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>config-server</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-server</artifactId>
            <version>2.1.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>
2.프로필:

spring:
  cloud:
    config:
      server:
        native:
          search-locations: classpath:/shared
  profiles:
    active: native
  application:
    name: config-server
server:
  port: 8769
resources 아래 새 디 렉 터 리 shared,새 파일 config-client-dev

server:
  port: 8762
foo: foo version 1
시작 클래스 에 추가

@EnableConfigServer
새 config-client 모듈

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.wxz</groupId>
        <artifactId>cloud-config-demo3</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.wxz</groupId>
    <artifactId>config-client</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>config-client</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
            <version>2.1.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>
새 프로필 bootstrap.yml(bootstrap 은 application 보다 우선 읽 기 순서 가 있 습 니 다)

spring:
  cloud:
    config:
      uri: http://localhost:8769
      fail-fast: true
  application:
    name: config-client
  profiles:
    active: dev
새로 만 든 controller 테스트:

package com.wxz.configclient.controller;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * @author Wangxingze
 * @date 2019-08-26 12:58
 */
@RestController
public class Test {
    @Value("${foo}")
    public String  foo;
    @GetMapping("/t")
    public String t(){
        return foo;
    }
}
server client 를 순서대로 시작 합 니 다.시작 할 때 설정 파일 을 읽 고 다이 안 크 를 시작 하 는 것 을 볼 수 있 습 니 다.접근:
在这里插入图片描述
메모:spring boot 와 cloud 버 전 및 config 의존 버 전

<groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.7.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
제 가 스프링 클 라 우 드 버 전 을 정 하지 않 았 나 봐 요.
config 관련 의존 사용:2.1.2.RELEASE
이상 은 개인 적 인 경험 이 므 로 여러분 에 게 참고 가 되 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 응원 해 주시 기 바 랍 니 다.

좋은 웹페이지 즐겨찾기