日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

SpringBoot项目属性配置

發(fā)布時間:2023/11/29 javascript 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringBoot项目属性配置 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

我們知道,在項目中,很多時候需要用到一些配置的東西,這些東西可能在測試環(huán)境和生產(chǎn)環(huán)境下會有不同的配置,后面也有可能會做修改,所以我們不能在代碼中寫死,要寫到配置中。我們可以把這些內(nèi)容寫到application.yml文件中。

舉個例子,在微服務(wù)架構(gòu)中,某個服務(wù)經(jīng)常會調(diào)用其他服務(wù)來獲取相關(guān)信息,那么需要配置其他服務(wù)的地址,我們可以做如下配置:

server:port:?8001#?配置多個微服務(wù)的地址 url:#?訂單微服務(wù)的地址orderUrl:?http://localhost:8002#?用戶微服務(wù)的地址userUrl:?http://localhost:8003#?購物車微服務(wù)的地址shoppingUrl:?http://localhost:8004

然后在代碼中如何獲取到這些配置內(nèi)容呢?我們在屬性上使用@Value注解即可獲取到,如下:

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;@RestController @RequestMapping("/test") public?class?TestController?{private?static?final?Logger?LOGGER?=?LoggerFactory.getLogger(TestController.class);@Value("${url.orderUrl}")private?String?orderUrl;@Value("${url.userUrl}")private?String?userUrl;@Value("${url.shoppingUrl}")private?String?shoppingUrl;@RequestMapping("/config")public?String?testConfig()?{LOGGER.info("=====獲取的訂單服務(wù)地址為:{}",?orderUrl);LOGGER.info("=====獲取的用戶服務(wù)地址為:{}",?userUrl);LOGGER.info("=====獲取的購物車服務(wù)地址為:{}",?shoppingUrl);return?"success";} }

很簡單,請求一下該8001端口的服務(wù)后,可以看到控制臺會打印出三個服務(wù)的地址,在實際項目中也是這么用的,后面如果因為服務(wù)器部署的原因,需要修改某個服務(wù)的地址,那么只要在配置文件中修改即可。

這里再引申一個問題,隨著業(yè)務(wù)復(fù)雜度的增加,一個項目中可能會有越來越多的微服務(wù),那么代碼中,如果這樣一個個去使用@Value注解引入的話,太繁瑣,也不科學(xué)。所以可以考慮封裝一個配置類。

/***?@author?shengwu?ni*?@date?2018/06/11*/ @Component @ConfigurationProperties(prefix?=?"url") public?class?MicroServiceUrl?{private?String?orderUrl;private?String?userUrl;private?String?shoppingUrl;//?省去get和set方法 }

使用@ConfigurationProperties注解可以指定一個前綴,然后該類中的屬性名就是配置中去掉前綴后的名字,一一對應(yīng)即可。同時,該類上面需要加上@Component注解,作為組件放到Spring容器中。對了,使用@ConfigurationProperties需要導(dǎo)入一個依賴:

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


OK,再寫個Controller來測試一下,此時,不需要再一個個引入了,直接通過@Resource注解將剛剛的配置類注入進(jìn)來即可使用了,非常方便。如下:

@RestController @RequestMapping("/test") public?class?TestController?{private?static?final?Logger?LOGGER?=?LoggerFactory.getLogger(TestController.class);@Resourceprivate?MicroServiceUrl?microServiceUrl;@RequestMapping("/config")public?String?testConfig()?{LOGGER.info("=====獲取的訂單服務(wù)地址為:{}",?microServiceUrl.getOrderUrl());LOGGER.info("=====獲取的用戶服務(wù)地址為:{}",?microServiceUrl.getUserUrl());LOGGER.info("=====獲取的購物車服務(wù)地址為:{}",?microServiceUrl.getShoppingUrl());return?"success";} }


關(guān)注小編

可獲得兩大新人禮包

36份一線互聯(lián)網(wǎng)Java面試電子書

84個Java稀缺面試題視頻

地址:http://yunxi.ai/java/java.html


轉(zhuǎn)載于:https://blog.51cto.com/13672983/2128157

總結(jié)

以上是生活随笔為你收集整理的SpringBoot项目属性配置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。