Spring Cloud는 오늘날 인기있는 분산 서비스 프레임 워크이며 많은 유용한 구성 요소를 제공합니다. 예 : 구성 센터, 유레카 서비스 검색, 메시지 버스, 퓨즈 메커니즘 등
구성 센터는 스프링 클라우드의 많은 구성 요소 중 비교적 기본입니다. 구성 파일의 통합 관리를 제공하고 중단되지 않은 환경으로 쉽게 전환 할 수 있습니다.
특정 구조는 다음과 같습니다.
Spring Cloud는 Spring Boot를 기반으로하며 Spring Cloud는 Spring Boot에서 분리 할 수 없으므로 프로젝트는 모두 Spring Boot를 기반으로합니다.
우리는 일반적으로 git에 구성 파일을 배치하는데 버전 제어에 사용하기 쉽습니다. 다음으로 구성 센터의 구성에 대해 이야기 해 봅시다.
구성 센터 구성
먼저, 스프링 부츠와 스프링 클라우드의 종속성 bom을 소개합니다.
<pectionencymanagement> <pectionmis> <pectionement> <groupId> org.springframework.cloud </groupId> <artifactID> Spring-Cloud-Dependencies </artifactid> <bersion> edgware.sr3 </version> <type> pom </type> <spope> import </scope> <pelaxendency> <! <selevency </scope> <type> <spelency 관리-> <groupid> org.springframework.boot </groupid> <artifactid> 스프링-부트-의존성 </artifactid> <버전> 1.5.9. release </type> <type> pom </type> <scope> 가져 오기 </scope> </fexendence> </fectionements> </fectionencyManagement>
여기서 우리는 공식 문서를 자세히 살펴 봐야합니다. Spring Cloud의 Finchley 버전은 Spring Boot 2.0을 기반으로하며 Spring Boot 1.5에서는 작동 할 수 없습니다. Edgware 버전은 1.5를 기반으로하며 2.0 미만으로 제대로 작동하지 않습니다. 불필요한 문제를 피하기 위해 모든 사람이 이것에주의를 기울여야합니다.
여기서 우리는 Spring Cloud의 Edgware 및 Spring Boot 버전 1.5를 사용합니다.
그런 다음 다음과 같이 필요한 종속성을 붓습니다.
<pectionies> <pectinement> <groupid> org.springframework.boot </groupid> <artifactid> Spring-Boot-Starter-web </artifactid> </dependency> <groupid> org.springframework.cloud </groupid> artifactid> springloud-config-sersitys> </artifactid>
마지막으로 구성 센터의 시작 클래스를 작성하십시오.
@springbootApplication@enableConfigServerVublic 클래스 configserverApplication {public static void main (string [] args) {springApplication.run (configserVerApplication.class, args); }}@enableconfigserver는이 서비스가 구성 센터 서비스라고 표시합니다. 특정 정보는 Application.Properties 파일에 구성됩니다.
#Server Port Server.port = 9000# 구성 파일 GIT 주소 Spring.cloud.config.server.git.uri = https : //github.com/liubo-tech/spring-cloud-properties# configuration file directory directory directory spring.cloud.config.server.git.bausedir =/d :/config-repo
모든 사람은 서비스 포트 및 GIT 주소를 이해하고 세 번째는 임시 파일이 구성되는 디렉토리입니다. 구성 센터가 호출되면 구성 센터는 구성 파일을 GIT에서 가져 와서 로컬로 캐시합니다. 이것은 구성 캐시의 디렉토리이며 구성없이 구성하고 시스템 기본값을 사용할 수도 있습니다. 이러한 방식으로 구성 센터가 설정되고 클러스터를 NGINX를 통해 구축하여 이용할 수 있도록 클러스터를 구축 할 수 있습니다.
액세스 구성 파일 형식은 다음과 같습니다.
/{application }/ {profile }= ]/ {Application }- (profile }.yml/ {label }/ {application }- {profile}. {application }- {profile} .yml/ {pollation }- (profile). {profile}안에:
클라이언트 전화
과거에는 구성 파일이 프로젝트에 배치되어 다른 환경을 전환 할 때 매우 번거 롭게 만들었으며 구성에 대한 민감한 정보도 개발자에게 노출되었습니다.
통합 구성 센터를 사용하여 피할 수 있습니다. 클라이언트가 어떻게 호출하는지 살펴 보겠습니다.
먼저, 다음과 같이 의존 해야하는 JAR 패키지를 가져옵니다.
<pectionies> <pectionency> <groupId> org.springframework.boot </groupid> <artifactid> Spring-Boot-Starter-web </artifactid> </dependency> <groupid> org.springframework.cloud </groupid> </exceptatter-config </artifactid> </artifactid> </artifactid>
Spring Cloud Config 클라이언트의 JAR이 프로젝트의 클래스 경로 아래에있는 한 프로젝트가 시작될 때 구성 센터에서 구성을 가져오고 Bootstrap 구성 파일의 spring.cloud.config.uri 속성을 통해 구성 센터를 지정합니다.
따라서 클라이언트의 프로젝트에는 bootstrap.yml 또는 bootstrap.properties 파일이 있어야합니다. 그렇지 않으면 클라이언트가 구성 센터에서 구성 파일을로드하지 않습니다.
우리는 다음과 같이 부트 스트랩을 만듭니다.
#configure 중심 주소 spring.cloud.config.uri = http : // localhost : 9000
구성 센터의 주소를 지정합니다. 위의 예에서는 구성 센터 포트의 9000을 지정합니다. Application.Properties 파일에서 응용 프로그램 이름을 구성합니다.
spring.application.name = eg-config
우리의 응용 프로그램을 "EG-Config"라고합니다. 프로젝트가 시작되면 EG-Config 파일이 구성 센터에서로드됩니다. 다음으로, 구성 센터에서 콩을 만들고 값을 주입해 보자.
@ComponentPublic Class MyBean {@Value ( "$ {my.name}") 개인 문자열 이름; 공개 문자열 getName () {return name; } public void setName (문자열 이름) {this.name = 이름; }}여기서 이름은 구성 센터에서 속성을로드합니다. 시작 클래스는 다음과 같습니다.
@SpringBootApplicationPublic Class Application {public static void main (String [] args) {configurableApplicationContext ApplicationContext = springApplication.Run (Application.Class, Args); // Bean을 가져 와서 이름 필드 MyBean Bean = ApplicationContext.getBean (myBean.class); System.out.println (bean.getName ()); }} 시작 후 콘솔 인쇄 결과는 다음과 같습니다. test
이것은 구성 센터에 소개됩니다. 자세한 내용은 프로젝트 예를 참조하십시오 : https://github.com/liubo-tech/spring-cloud-config.
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.