中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

springboot怎么獲取application.yml里值

發布時間:2022-04-27 14:45:53 來源:億速云 閱讀:370 作者:iii 欄目:開發技術

本篇內容主要講解“springboot怎么獲取application.yml里值”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“springboot怎么獲取application.yml里值”吧!

在項目中,很多時候需要用到一些配置信息,這些信息在測試環境和生產環境下可能會有不同的配置,后面根據實際業務情況有可能還需要再做修改。我們不能將這些配置在代碼中寫死,最好是寫到配置文件中,比如可以把這些信息寫到 application.yml 文件中。

springboot怎么獲取application.yml里值

那么,怎么在代碼里獲取或者使用這個地址呢?有2個方法。

方法一:

我們可以通過@Value 注解的 ${key} 即可獲取配置文件(application.yml)中和 key 對應的 value 值,這個方法適用于微服務比較少的情形

springboot怎么獲取application.yml里值

方法二:

在實際項目中,遇到業務繁瑣,邏輯復雜的情況,需要考慮封裝一個或多個配置類。例如,假如在當前服務中,某個業務需要同時調用微服務1、微服務2和微服務3。

如果這樣一個個去使用 @Value 注解引入相應的微服務地址的話,太過于繁瑣。

也許實際業務中,遠遠不止這三個微服務,甚至十幾個都有可能。對于這種情況,我們可以先定義一個 MicroServiceUrl 類來專門保存微服務的 URL

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Component
@ConfigurationProperties(prefix = "url")
public class MicroServiceUrl {

private String orderUrl;
private String userUrl;
private String shoppingUrl;

public String getOrderUrl() {
return orderUrl;
}

public void setOrderUrl(String orderUrl) {
this.orderUrl = orderUrl;
}

public String getUserUrl() {
return userUrl;
}

public void setUserUrl(String userUrl) {
this.userUrl = userUrl;
}

public String getShoppingUrl() {
return shoppingUrl;
}

public void setShoppingUrl(String shoppingUrl) {
this.shoppingUrl = shoppingUrl;
}
}

添加依賴:

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>

目前配置寫好了,此時,不需要在代碼中一個個引入這些微服務的 URL,直接通過 @Resource 注解將剛剛寫好的配置類注入進來即可使用了,以下是測試Controller:

springboot怎么獲取application.yml里值

import com.example.test1.config.MicroServiceUrl;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;

/**
* 獲取配置文件(application.yml)中和 key 對應的 value 值
* 2種方法
*/
@RestController
@RequestMapping("/test")
public class ConfigController {

private static final Logger LOGGER = LoggerFactory.getLogger(ConfigController.class);

@Value("${url.orderUrl}")
private String orderUrl;

@Resource
private MicroServiceUrl microServiceUrl;

@RequestMapping("/config")
public String testConfig() {
LOGGER.info("獲取的地址為:{}", orderUrl);
LOGGER.info("微服務1地址為:{}", microServiceUrl.getOrderUrl());
LOGGER.info("微服務2地址為:{}", microServiceUrl.getUserUrl());
LOGGER.info("微服務3地址為:{}", microServiceUrl.getShoppingUrl());
return "success";
}
}

到此,相信大家對“springboot怎么獲取application.yml里值”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

富蕴县| 大田县| 静安区| 马公市| 上蔡县| 万源市| 西宁市| 平邑县| 莱阳市| 扬州市| 兴安盟| 肇州县| 洮南市| 内乡县| 集贤县| 宽城| 丹棱县| 荆州市| 瓦房店市| 永德县| 瑞昌市| 石景山区| 思南县| 永春县| 南和县| 诸城市| 鄂托克旗| 剑河县| 青阳县| 武陟县| 都兰县| 建昌县| 樟树市| 吴川市| 彭水| 平顺县| 鞍山市| 光泽县| 大石桥市| 宁海县| 中阳县|