Spring Boot - Ứng dụng khách cấu hình đám mây

Một số ứng dụng có thể cần thuộc tính cấu hình có thể cần thay đổi và nhà phát triển có thể cần gỡ chúng xuống hoặc khởi động lại ứng dụng để thực hiện việc này. Tuy nhiên, điều này có thể dẫn đến thời gian ngừng hoạt động trong quá trình sản xuất và yêu cầu khởi động lại ứng dụng. Máy chủ cấu hình đám mây mùa xuân cho phép các nhà phát triển tải các thuộc tính cấu hình mới mà không cần khởi động lại ứng dụng và không có bất kỳ thời gian chết nào.

Làm việc với Máy chủ cấu hình đám mây mùa xuân

Đầu tiên, tải xuống dự án Spring Boot từ https://start.spring.io/và chọn sự phụ thuộc vào Spring Cloud Config Client. Bây giờ, thêm phần phụ thuộc Spring Cloud Starter Config vào tệp cấu hình bản dựng của bạn.

Người dùng Maven có thể thêm phần phụ thuộc sau vào tệp pom.xml.

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

Người dùng Gradle có thể thêm phần phụ thuộc sau vào build.gradle tập tin.

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

Bây giờ, bạn cần thêm chú thích @RefreshScope vào ứng dụng Spring Boot chính của mình. Chú thích @RefreshScope được sử dụng để tải giá trị thuộc tính cấu hình từ máy chủ Cấu hình.

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);
   }
}

Bây giờ, hãy thêm URL máy chủ cấu hình vào tệp application.properties của bạn và cung cấp tên ứng dụng của bạn.

Note - http: // localhost: Máy chủ cấu hình 8888 nên được chạy trước khi khởi động ứng dụng máy khách cấu hình.

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

Mã để viết một Điểm cuối REST đơn giản để đọc thông báo chào mừng từ máy chủ cấu hình được đưa ra dưới đây:

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

Bạn có thể tạo tệp JAR thực thi và chạy ứng dụng Spring Boot bằng cách sử dụng lệnh Maven hoặc Gradle sau:

Đối với Maven, bạn có thể sử dụng lệnh hiển thị bên dưới:

mvn clean install

Sau khi “XÂY DỰNG THÀNH CÔNG”, bạn có thể tìm thấy tệp JAR trong thư mục đích.

Đối với Gradle, bạn có thể sử dụng lệnh hiển thị bên dưới:

gradle clean build

Sau khi “XÂY DỰNG THÀNH CÔNG”, bạn có thể tìm thấy tệp JAR trong thư mục build / libs.

Bây giờ, chạy tệp JAR bằng cách sử dụng lệnh hiển thị ở đây:

java –jar <JARFILE>

Bây giờ, ứng dụng đã khởi động trên cổng Tomcat 8080 như được hiển thị ở đây -

Bạn có thể thấy cửa sổ bảng điều khiển đăng nhập; ứng dụng config-client đang tìm nạp cấu hình từ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

Bây giờ hãy nhấn vào URL, http://localhost:8080/ thông báo chào mừng được tải từ máy chủ cấu hình.

Bây giờ, hãy đi và thay đổi giá trị thuộc tính trên máy chủ Cấu hình và nhấn URL POST của thiết bị truyền động http://localhost:8080/refresh và xem giá trị thuộc tính cấu hình mới trong URL http://localhost:8080/