您好,登錄后才能下訂單哦!
本篇內容主要講解“springboot怎么獲取application.yml里值”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“springboot怎么獲取application.yml里值”吧!
在項目中,很多時候需要用到一些配置信息,這些信息在測試環境和生產環境下可能會有不同的配置,后面根據實際業務情況有可能還需要再做修改。我們不能將這些配置在代碼中寫死,最好是寫到配置文件中,比如可以把這些信息寫到 application.yml
文件中。
那么,怎么在代碼里獲取或者使用這個地址呢?有2個方法。
我們可以通過@Value 注解的 ${key} 即可獲取配置文件(application.yml)中和 key 對應的 value 值,這個方法適用于微服務比較少的情形
在實際項目中,遇到業務繁瑣,邏輯復雜的情況,需要考慮封裝一個或多個配置類。例如,假如在當前服務中,某個業務需要同時調用微服務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:
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里值”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。