Spring Boot - ไคลเอ็นต์การกำหนดค่าระบบคลาวด์

แอปพลิเคชันบางตัวอาจต้องการคุณสมบัติการกำหนดค่าที่อาจต้องมีการเปลี่ยนแปลงและนักพัฒนาอาจจำเป็นต้องลบหรือรีสตาร์ทแอปพลิเคชันเพื่อดำเนินการ อย่างไรก็ตามอาจนำไปสู่การหยุดทำงานในการใช้งานจริงและจำเป็นต้องรีสตาร์ทแอปพลิเคชัน Spring Cloud Configuration Server ช่วยให้นักพัฒนาโหลดคุณสมบัติการกำหนดค่าใหม่โดยไม่ต้องรีสตาร์ทแอปพลิเคชันและไม่มีเวลาหยุดทำงาน

ทำงานกับ Spring Cloud Configuration Server

ขั้นแรกให้ดาวน์โหลดโครงการ Spring Boot จาก https://start.spring.io/และเลือกการพึ่งพาไคลเอ็นต์ Spring Cloud Config ตอนนี้เพิ่มการพึ่งพา Spring Cloud Starter Config ในไฟล์คอนฟิกูเรชันบิลด์ของคุณ

ผู้ใช้ Maven สามารถเพิ่มการอ้างอิงต่อไปนี้ลงในไฟล์ pom.xml

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

ผู้ใช้ Gradle สามารถเพิ่มการอ้างอิงต่อไปนี้ลงในไฟล์ build.gradle ไฟล์.

compile('org.springframework.cloud:spring-cloud-starter-config')

ตอนนี้คุณต้องเพิ่มคำอธิบายประกอบ @RefreshScope ในแอปพลิเคชัน Spring Boot หลักของคุณ คำอธิบายประกอบ @RefreshScope ใช้เพื่อโหลดค่าคุณสมบัติคอนฟิกูเรชันจากเซิร์ฟเวอร์ Config

package com.example.configclient;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.context.config.annotation.RefreshScope;

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

ตอนนี้เพิ่ม URL เซิร์ฟเวอร์การกำหนดค่าในไฟล์ application.properties ของคุณและระบุชื่อแอ็พพลิเคชันของคุณ

Note - http: // localhost: เซิร์ฟเวอร์กำหนดค่า 8888 ควรรันก่อนที่จะเริ่มแอปพลิเคชันไคลเอนต์ config

spring.application.name = config-client
spring.cloud.config.uri = http://localhost:8888

รหัสสำหรับการเขียน REST Endpoint อย่างง่ายเพื่ออ่านข้อความต้อนรับจากเซิร์ฟเวอร์การกำหนดค่ามีให้ด้านล่าง -

package com.example.configclient;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RefreshScope
@RestController
public class ConfigclientApplication {
   @Value("${welcome.message}")
   String welcomeText;
   
   public static void main(String[] args) {
      SpringApplication.run(ConfigclientApplication.class, args);
   }
   @RequestMapping(value = "/")
   public String welcomeText() {
      return welcomeText;
   }
}

คุณสามารถสร้างไฟล์ JAR ที่ปฏิบัติการได้และเรียกใช้แอปพลิเคชัน Spring Boot โดยใช้คำสั่ง Maven หรือ Gradle ต่อไปนี้ -

สำหรับ Maven คุณสามารถใช้คำสั่งที่แสดงด้านล่าง -

mvn clean install

หลังจาก“ BUILD SUCCESS” คุณจะพบไฟล์ JAR ภายใต้ไดเร็กทอรีเป้าหมาย

สำหรับ Gradle คุณสามารถใช้คำสั่งที่แสดงด้านล่าง -

gradle clean build

หลังจาก“ BUILD SUCCESSFUL” คุณจะพบไฟล์ JAR ภายใต้ไดเร็กทอรี build / libs

ตอนนี้เรียกใช้ไฟล์ JAR โดยใช้คำสั่งที่แสดงที่นี่:

java –jar <JARFILE>

ตอนนี้แอปพลิเคชันได้เริ่มต้นในพอร์ต Tomcat 8080 ดังที่แสดงไว้ที่นี่ -

คุณจะเห็นหน้าต่างล็อกอินคอนโซล แอปพลิเคชัน config-client กำลังดึงการกำหนดค่าจากไฟล์https://localhost:8888

2017-12-08 12:41:57.682  INFO 1104 --- [           
   main] c.c.c.ConfigServicePropertySourceLocator : 
   Fetching config from server at: http://localhost:8888

ตอนนี้กด URL http://localhost:8080/ ข้อความต้อนรับถูกโหลดจากเซิร์ฟเวอร์คอนฟิกูเรชัน

ตอนนี้ไปและเปลี่ยนค่าคุณสมบัติบนเซิร์ฟเวอร์คอนฟิกูเรชันและกดที่ตัวกระตุ้นจุดสิ้นสุด POST URL http://localhost:8080/refresh และดูค่าคุณสมบัติคอนฟิกูเรชันใหม่ใน URL http://localhost:8080/