Spring Cloud Config 는 로 컬 프로필 방식 을 사용 합 니 다.
13006 단어 SpringCloudConfig프로필
분포 식 시스템 에 서 는 서비스 수량 이 많 기 때문에 서비스 프로필 의 통일 적 인 관 리 를 편리 하 게 하고 실시 간 으로 업데이트 하기 위해 분포 식 설정 센터 구성 요소 가 필요 합 니 다.
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 관련 의존 사용:
이상 은 개인 적 인 경험 이 므 로 여러분 에 게 참고 가 되 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 응원 해 주시 기 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
SpringCloud OAuth2 + JWT 인증 인증(一) 인증 서버Spring Cloud oAuth2(1) 라이센스 서버 구축 및 액세스 Spring Cloud oAuth2(2) 리소스 서버 구축 및 테스트 SpringCloud OAuth2 + JWT 인증 인증(一) 인증 서버 S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.