当前位置: 首页 > 后端技术 > Java

【小小枫的SpringBoot系列】【十八】SpringBoot中的属性配置

时间:2023-04-01 21:00:58 Java

鏈枃浠嬬粛馃帹闅忕潃鎴戜滑鐨勬紨绀哄姛鑳借秺鏉ヨ秺澶氾紝閲岄潰鐨勯厤缃篃瓒婃潵瓒婂銆傛垜浠€庢牱鎵嶈兘鏇村ソ鍦扮鐞嗗畠锛熻繖浜涢厤缃憿锛熷湪瀹為檯椤圭洰涓紝鎴戜滑鑲畾浼氭湁寮€鍙戠幆澧冦€佹祴璇曠幆澧冦€佺敓浜х幆澧冦€傛垜浠浣曟柟渚垮湴閰嶇疆杩欎簺鐜锛熸垜浠簲璇ュ浣曡嚜瀹氫箟涓€浜涜嚜宸辩殑閰嶇疆鍛紵濡備綍浣跨敤瀹冿紵甯︾潃杩欎簺闂锛屾垜浠竴璧锋潵璁ㄨ馃馃馃鍔熻兘瀹炵幇馃閰嶇疆瀛愭ā鍧楃鐞嗗湪浣跨敤杩囩▼涓紝鎴戜滑鏈夊緢澶氶厤缃紝姣斿mysql閰嶇疆锛宺edis閰嶇疆锛宮ybatis-plus锛岃皟鐢ㄧ涓夋柟鎺ュ彛閰嶇疆锛岀瓑..鎴戜滑鐜板湪澶勪簬涓€涓ぇ鑰屽叏闈㈢殑閰嶇疆涓€傚鏋滄垜浠兂鎶婂畠鎸夌収鍔熻兘鍒嗘垚涓嶅悓鐨勯厤缃枃浠惰繘琛岀鐞嗭紝璁╅厤缃洿娓呮櫚锛岄偅鎬庝箞鍔炲憿锛熸垜浠彲浠ヤ娇鐢╯pring.profiles.include:*,*,*鏉ュ寘鍚叾浠栭厤缃敞鎰忥細鍒涘缓鐨勯厤缃浠pplication-寮€澶达紝姣斿mysql锛屾垜浠彲浠ラ厤缃负application-mysql銆傚寘鍚涓厤缃紝鍙互鐢ㄨ嫳鏂囬€楀彿锛?,"锛夊垎闅斻€傛垜浠湪璧勬簮鐩綍涓垱寤篴pplication-xxf.yml鏂囦欢銆備唬鐮佸涓嬸煈噚xf:name:绗戝皬椋?xxfsite:https://www.xiaoxiaofeng.com鐒跺悗鍦╝pplication.yml涓厤缃涓嬩唬鐮佸埌spring:profiles:include:xxf鍥犱负鍔熻兘鍗曚竴鑰屼笖鐩镐簰渚濆瓨锛屾渶缁堢粺涓€缂栧啓娴嬭瘯浠g爜銆傞厤缃甿ysql銆乺edis绛夊涓幆澧冦€備笉鍚岀幆澧冪殑閰嶇疆鑲畾鏄笉涓€鏍风殑銆傛垜涓嶆兂鍦ㄦ墦鍖呭彂甯冧箣鍓嶄慨鏀逛竴娆¢厤缃€傚浣曞揩閫熷垏鎹㈢幆澧冿紵鎴戜滑鍙互浣跨敤spring.profiles.active:*鏉ユ寚瀹氶」鐩惎鍔ㄦ墍浣跨敤鐨勭幆澧冦€傛垜浠厛鍒涘缓涓や釜娴嬭瘯閰嶇疆application-dev.ymlxxf:desc:Thisisadevelopmentenvironmentapplication-prod.ymlxxf:desc:Thisisaproduction鐒跺悗鍦╝pplication.yml閰嶇疆涓娇鐢╯pring.profiles.active:*鏉ユ寚瀹氱幆澧冦€俿pring:profiles:active:dev鍥犱负鍔熻兘鍗曚竴锛岀浉浜掍緷璧栵紝鎵€浠ユ渶鍚庤繕鏄粺涓€鍐欐祴璇曚唬鐮佸惂銆傝嚜瀹氫箟閰嶇疆浣跨敤涓婇潰璇村埌xxf.name`xxf.desc`閮芥槸鎴戜滑鑷畾涔夌殑閰嶇疆锛岄偅涔堟垜浠湪椤圭洰涓浣曞揩閫熶娇鐢ㄥ憿锛熸渶绠€鍗曠殑鏂规硶鏄娇鐢ㄦ敞瑙Value("${xxf.name}")銆傚鏋滃涓厤缃彲鑳戒細琚绻佷娇鐢紝閭d箞鎯宠缁熶竴绠$悊鎬庝箞鍔炲憿锛熸垜浠彲浠ュ垱寤轰竴涓被锛屽湪绫讳腑缁熶竴瀹氫箟瀹冧滑锛岀劧鍚庡湪绫讳笂浣跨敤@Configuration娉ㄨВ銆傚浜庡悓缁勭殑閰嶇疆锛屾垜浠篃鍙互浣跨敤@ConfigurationProperties(prefix="xxf")鏉ユ寚瀹氬墠缂€銆傚儚涓嬮潰馃憞packagecom.maple.demo.config.bean;importlombok.Data;importorg.springframework.boot.context.properties.ConfigurationProperties;importorg.springframework.context.annotation.Configuration;/***@author灏忓皬椋?@date2022/7/22*@seehttps://www.xiaoxiaofeng.com*/@Data@Configuration@ConfigurationProperties(prefix="xxf")publicclassXxfProperties{绉佹湁瀛楃涓插悕绉帮紱privateStringsite;}瀹炰緥娴嬭瘯鉁屼笂闈㈣浜嗚繖涔堝锛屾垜浠潵娴嬭瘯涓€涓嬨€傚湪controller鍖呬笅缂栧啓娴嬭瘯绫籘estConfigController.javapackagecom.maple.demo.controller;importcom.maple.demo.config.bean.XxfProperties;importio.swagger.annotations.Api;importio.swagger.annotations.ApiOperation;瀵煎叆lombok.RequiredArgsConstructor锛涘鍏ombok.extern.slf4j.Slf4j锛涘鍏rg.springframework.beans.factory.annotation.Value锛涘鍏rg.springframework.web.bind.annotation.GetMapping锛涘鍏rg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RestController;/***@authorXiaoXiaofeng*@date2022/7/22*@seehttps://www.xiaoxiaofeng.com*/@Slf4j@RestController@RequestMapping("/example")@RequiredArgsConstructor@Api(tags="绀轰緥demo-搴旂敤鏂囦欢閰嶇疆")publicclassTestConfigController{/***閫氱敤鈥斺€斾笉鍖哄垎鐜*/@Value("${xxf.name}")privateStringname;@Value("${xxf.site}")绉佷汉瀛楃涓插潗e;/***鍖哄垎鐜*/@Value("${xxf.desc}")privateStringdesc;/***鍚岀粍閰嶇疆锛屽彲浠ョ被鐨勫舰寮忔敞鍏?/privatefinalXxfPropertiesxxfProperties;@ApiOperation(value="涓嶅悓鐜鐨勯厤缃祴璇曠敤渚?)@GetMapping("/configEnv")publicStringchooseEnv(){returndesc;}@ApiOperation(value="Containsconfigurationtestcases")@GetMapping("/commonEnv")publicStringcommonEnv(){returnname+site;}@ApiOperation(value="Testcasesforunifieduseconfigurationwithclasses")@GetMapping("/configClass")publicStringconfigClass(){returnxxfProperties.getName();}}鍒嗕负涓夌鍦烘櫙锛岄厤缃笉鍚岀幆澧冧笅鐨勬祴璇曠敤渚嬮厤缃甦ev鐜锛岀敤娴忚鍣ㄨ闂甴ttp://localhost:6666/example/configEnv鍒囨崲鍒皃rod鐜锛岄噸鍚」鐩紝璁块棶http://localhost鍐嶆涓庢祻瑙堝櫒锛?666/example/configEnv鍖呭惈閰嶇疆鐨勬祴璇曠敤渚嬫祻瑙堝櫒璁块棶http://localhost:6666/example/commonEnv浣跨敤閰嶇疆鐨勬祴璇曠敤渚嬫祻瑙堝櫒璁块棶http://localhost:6666/example/configClass杩涜鏇村閰嶇疆绠$悊宸ュ叿馃憖濡傛灉鎴戜滑鏄崟涓」鐩紝鍦ㄩ」鐩腑绠$悊閰嶇疆杩樻槸鍙互鐨勶紝浣嗘槸濡傛灉鎴戜滑鏈夊崄涓€佷竴鐧句釜椤圭洰锛屽鏋滄垜浠湁涓撲笟鐨勮繍缁翠汉鍛橈紝鎴栬€呯敓浜ч厤缃兂闅旂锛岃繖鏍锋垜浠湪椤圭洰涓鐞嗛厤缃槸涓嶅悎閫傜殑銆傛垜浠殑椤圭洰鍙互闆嗘垚涓€浜涘叾浠栫殑閰嶇疆绠$悊宸ュ叿锛屾瘮濡傞樋閲岀殑nocas锛屾惡绋嬬殑apollo绛夐兘鏄笉閿欑殑寮€婧愰厤缃鐞嗙郴缁燂紝鎴戜滑鍙互鐩存帴浣跨敤锛岃繖閲屽氨涓嶄粙缁嶄簡锛屾湁鍏磋叮鐨勬湅鍙嬪彲浠ョ湅涓嬮潰鐨勬枃绔?鍏充簬钀ф檽宄梆煉曟湰绔犲埌姝ょ粨鏉燂紝鍠滄鐨勬湅鍙嬩滑鍏虫敞鎴戯紝澶у鐨勬敮鎸佹槸鎴戠户缁啓涓嬪幓鐨勫姩鍔涖€傚井淇″叕浼楀彿锛氬皬灏忛灏忓皬椋庝釜浜哄崥瀹細https://www.xiaoxiaofeng.comCSDN锛歨ttps://zhangfz.blog.csdn.net鏈枃婧愮爜锛歨ttps://github.com/hack-鍐?鏋爲婕旂ず