日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
教你如何在SpringBOOT中處理配置

在這篇文章中,我將討論如何在 Spring Boot 應用程序中使用外部化配置。

十載的蘆溪網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。全網(wǎng)營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整蘆溪建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)公司從事“蘆溪網(wǎng)站設(shè)計”,“蘆溪網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。

1.概述

我們將使用 Spring Boot 的默認設(shè)置來創(chuàng)建一些配置并在我們的應用程序中讀取它們。我們還將研究一種設(shè)置屬性和基于 YAML 的配置的簡單鍵值方式。

我更喜歡使用 YAML,從現(xiàn)在開始,我將只使用 YAML 基礎(chǔ)設(shè)置。

2. 初始設(shè)置

在我的實現(xiàn)運行期間,我注意到我最終需要使用。

spring-boot-configuration-processor 依賴項。否則我會得到一個錯誤,并且代碼不會編譯。我沒有找到太多關(guān)于為什么在我的研究中需要這樣做,但是添加這個依賴項為我解決了這個問題。

我添加的第二個依賴項是 Actuator,它為我們提供了一些令人興奮的工具。這是不必要的,但如果您正在尋找調(diào)試屬性并找到更多可使用的配置,我建議您也添加它。

<依賴>
org.springframework.boot

spring-boot-configuration-processor

<可選>真


<依賴>

org.springframework.boot

spring-boot-starter-actuator


3. 設(shè)置配置文件

以下代碼適用于 application.properties 文件,這是您將在 Spring Boot 中獲得的默認格式。

# 這是為了暴露Actuator的所有端點。僅在 DEV 中對所有人使用 *
management.endpoints.web.exposure.include=*


# Custom Properties
bungie.rootPath="https://www.bungie.net/Platform"
bungie.apiKey=000999888111

以下是 YAML 格式的相同屬性。

bungie:
rootPath: "https://www.bungie.net/Platform"
apiKey: 000999888111

4. 創(chuàng)建將讀取這些配置的 Bean

現(xiàn)在我們已經(jīng)創(chuàng)建了屬性,在讀取屬性時我們需要考慮 2 個用例。

  • 讀取一次性屬性——在這種情況下,我們可能需要創(chuàng)建一個需要讀取一次或不能與任何其他屬性分類的屬性。在這種情況下,您可以使用@Value 注解來讀取它。
  • 讀取一組屬性——在我們的示例中,我們已經(jīng)在“bungie”類別下確定了兩個分組屬性。這就是我更喜歡創(chuàng)建屬性的方式。我不喜歡有孤兒屬性,因此我們只會看到如何設(shè)置它們。以下示例將向我們展示如何創(chuàng)建 。 Java Bean/Configuration,它將能夠讀取我們的屬性文件并填充對象。
package io.howtoarchitect.destinyclanwars.config;

import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

@Configuration
@ConfigurationProperties("bungie")
@Getter @Setter
public class BungieClientSettings {
private String rootPath;
private String apiKey;
}

如果你觀察上面的代碼塊,你會注意到一些事情:

  • 我們曾經(jīng)@Configuration讓 Spring 應用程序知道這是一個 bean,應該這樣初始化。
  • @Getter并且@Setter來自 Lombok 包,為我們提供了默認的 Getter 和 Setter。這些是強制性的,因為 Spring 應用程序總是需要這些 getter 和 setter。
  • @ConfigurationProperties是這里的主要技巧的注釋。它將遍歷我們上下文中可用的所有屬性,并搜索任何已映射的用戶“bungie”。找到后,此注釋將映射 YAML/Properties 文件值并將它們添加到我們的字符串中。

5. 消費屬性

完成此設(shè)置后,最后一步是在我們的應用程序中讀取這些屬性。我們將在另一個 Spring bean/service 中讀取這些屬性。

package io.howtoarchitect.destinyclanwars.bungieclient;

import io.howtoarchitect.destinyclanwars.config.BungieClientSettings;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Service;
import org.springframework.web.reactive.function.client.WebClient;

@Service
public class BungieClient {
private static WebClient client;

@Autowired
private BungieClientSettings bungieClientSettings;

public WebClient getDefaultClient() {
client = WebClient.builder()
.baseUrl(bungieClientSettings.getRootPath())
.defaultHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE)
.defaultHeader("X-API-KEY", bungieClientSettings.getApiKey())
.build();

return client;
}
}

您會注意到我已將其添加BungieClientSettings為@Autowired依賴項。這會在我的類中注入 bean,當我需要訪問這些屬性時,我需要做的就是bungieClientSettings.getAPIKey()和bungieClientSettings.getRootPath()。

結(jié)論

這就是您需要做的就是將您的屬性外部化。盡早設(shè)置這一點很重要,因為如果不這樣做,您最終會將其中許多分散在課堂上,并且遷移到多個環(huán)境將變得困難。


網(wǎng)頁標題:教你如何在SpringBOOT中處理配置
網(wǎng)頁網(wǎng)址:http://m.5511xx.com/article/dpshdjj.html