精通Spring Boot——第十一篇:使用自定義配置

2019獨角獸企業重金招聘Python工程師標準>>> hot3.png

今天這篇文章給大家介紹自定義配置的兩種方式 第一式: 使用@ConfigurationProperties,且看代碼

package com.developlee.customconfig.config;import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.NestedConfigurationProperty;
import org.springframework.context.annotation.Configuration;/*** @author Lensen* @desc* @since 2018/8/22 12:59*/
@Configuration
@ConfigurationProperties(prefix = "one-app")
public class OneAppConfig {@NestedConfigurationPropertypublic Account account = new Account();public String appName;public Account getAccount() {return account;}public void setAccount(Account account) {this.account = account;}public String getAppName() {return appName;}public void setAppName(String appName) {this.appName = appName;}public class Account {private String username;private String password;private String age;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getAge() {return age;}public void setAge(String age) {this.age = age;}}
}

很明顯,這就是我們要在properties文件中要配置的配置項。 再看第二種方式

/*** @author Lensen* @desc* @since 2018/8/22 13:19*/
@Configuration
public class TwoAppConfig {@Value("${two-app.welcome.message}")public String twoAppWelcomeMessage;@Value("${two-app.welcome.person}")public String twoAppWelcomePerson;public String getTwoAppWelcomeMessage() {return twoAppWelcomeMessage;}public void setTwoAppWelcomeMessage(String twoAppWelcomeMessage) {this.twoAppWelcomeMessage = twoAppWelcomeMessage;}public String getTwoAppWelcomePerson() {return twoAppWelcomePerson;}public void setTwoAppWelcomePerson(String twoAppWelcomePerson) {this.twoAppWelcomePerson = twoAppWelcomePerson;}
}

這個就簡單粗暴啦。沒有第一種方式結構那么清晰,具體怎么使用,完全取決于項目配置項的關聯關系和復雜度,需要大家根據實際情況權衡。 接下來我寫了個簡單的測試類,來獲取我們的配置信息 先看配置文件:

one-app:app-name: OneAPPaccount:username: Lensenpassword: Orclage: 22two-app:welcome:message: welcome to lensen's bolgperson: LENSEN

一個簡單的Controller類

package com.developlee.customconfig.controller;import com.developlee.customconfig.config.OneAppConfig;
import com.developlee.customconfig.config.TwoAppConfig;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;/*** @author Lensen* @desc* @since 2018/8/22 16:40*/
@RestController
public class AppController {@Autowiredprivate OneAppConfig oneAppConfig;@Autowiredprivate TwoAppConfig twoAppConfig;@GetMapping("/hello")public ResponseEntity getConfig() {String str1 = "oneAppConfig: " + oneAppConfig.getAppName() + oneAppConfig.getAccount().getUsername()+ oneAppConfig.getAccount().getPassword() + oneAppConfig.getAccount().getAge();String str2 = "twoAppConfig: " + twoAppConfig.getTwoAppWelcomePerson() + twoAppConfig.getTwoAppWelcomeMessage();return new ResponseEntity(str1 +"~~~~~~~"+ str2, HttpStatus.OK);}
}

在地址欄輸入http:localhost:8080/hello, 回車 image 也可以自己指定文件,只需在類上加上注解@PropertySource注解就好了~~

@Configuration
@PropertySource("classpath:my.properties")
public class ThreeConfig {@Value("${my.name}")private String myName;public String getMyName() {return myName;}public void setMyName(String myName) {this.myName = myName;}
}

my.properties文件內容:

my.name=developlee

測試結果: image

如果配置文件是yml格式的,則要使用YamlPropertiesFactoryBean來加載并設置到PropertySourcesPlaceholderConfigurer中

// 加載YML格式自定義配置文件@Beanpublic static PropertySourcesPlaceholderConfigurer properties() {PropertySourcesPlaceholderConfigurer configurer = new PropertySourcesPlaceholderConfigurer();YamlPropertiesFactoryBean yaml = new YamlPropertiesFactoryBean();yaml.setResources(new FileSystemResource("config.yml"));//File引入
//		yaml.setResources(new ClassPathResource("youryml.yml"));//class引入configurer.setProperties(yaml.getObject());return configurer;

end... 浮躁的社會,浮躁的人生,唯有代碼,寧靜致遠。(又開始裝13了,見諒.....)

最后,以上示例代碼可在我的github.com中找到。 我的個人公眾號:developlee的瀟灑人生。 關注了也不一定更新,更新就不得了了。

qrcode_for_gh_2bd3f44efa21_258

轉載于:https://my.oschina.net/liululee/blog/2250330

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/277047.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/277047.shtml
英文地址,請注明出處:http://en.pswp.cn/news/277047.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MySQL 高可用架構在業務層面的應用分析

MySQL 高可用架構在業務層面的應用分析 http://mp.weixin.qq.com/s?__bizMzAxNjAzMTQyMA&mid208312443&idx1&snf9a0d03dd9a1cf3b3575c0241291e421&scene22&srcidseLU5tmZumKLzwVBIHzM#rd http://mp.weixin.qq.com/s?__bizMzAxNjAzMTQyMA&mid20831244…

使用Expresso學習.net正則表達式

什么是RE?想必各位大大在做文件查找的時侯都有使用過萬用字符”*”,比如說想查找在Windows目錄下所有的Word文件時,你可能就會用”*.doc”這樣的方式來做查找,因為”*”所代表的是任意的字符。RE所做的就是類似這樣的功能,但其功…

數據結構與算法學習筆記之 從0編號的數組

數據結構與算法學習筆記之 從0編號的數組前言數組看似簡單,但掌握精髓的卻沒有多少;他既是編程語言中的數據類型,又是最基礎的數據結構;一個小問題:為什么數據要從0開始編號,而不是 從1開始呢?正…

JAVA四種基本排序總結

JAVA四種基本排序,包括冒泡法,插入法,選擇法,SHELL排序法.其中選擇法是冒泡法的改進,SHELL排序法是 插入法的改進.所以從根本上來說可以歸納為兩種不同的排序方法:即:插入法&冒泡法一 插入法:遍歷排序集合,每到一個元素時,都要將這個元素與所…

Windows 故障轉移+Hyper-V 虛機自動遷移高 可用

Windows 故障轉移Hyper-V 虛機自動遷移高 可用 Windows 故障轉移Hyper-V 虛機自動遷移高... 1一、系統原理... 31.1 高效率的 VMbus 架構... 31.2 完美支持 Linux 系統... 4二、架構拓樸... 52.1 網絡及系統架構拓樸... 52.2 域結構拓樸... 5三、實驗資源列表... 63.1 網絡設備…

MSSqlServer基礎學習01

1.新建登陸用戶名,須賦予數據庫訪問權限方可訪問已有的數據庫,可以參考如下圖片轉載于:https://www.cnblogs.com/MyVision/p/11242417.html

js,java時間處理

1.JS獲取時間格式為“yyyy-MM-dd HH:mm:ss”的字符串 function getTimeStr(){var myDate new Date();var year myDate.getFullYear(); //獲取完整的年份(4位,1970-????)var month myDate.getMonth(); //獲取當前月份(0-11,0代表1月)month month > 9 ? month : &quo…

框架和模式

1.什么是模式? 模式,即pattern。其實就是解決某一類問題的方法論。你把解決某類問題的方法總結歸納到理論高度,那就是模式。 Alexander給出的經典定義是:每個模式都描述了一個在我們的環境中不斷出現的問題&#xff0c…

人月神話第三章

對于效率和概念的完整性來說,最好由少數干練的人員來設計和開發, 而對于大型系統, 則需要大量的人手, 以使產品能在時間上滿足要求。 文章參照外科手術隊伍對10個人的編程隊伍進行專業化的角色分工。并為如何運作做出詳細說明。…

評上了7月份的Microsoft MVP

昨天晚上覺得困,于是躺到床上去休息了一會兒,沒想到醒來以后就發現了一封信,告訴我當選了7月份的MVP(我們的Cat Chen也同樣當選了,園子里肯定還有其它朋友)。自從去年9月份登陸博客園以來,寫技術…

javascript刪除數組,索引出現問題解決辦法。

var data [{ isRemove: 0, name: "項目1" },{ isRemove: 1, name: "項目2" },{ isRemove: 1, name: "項目3" },{ isRemove: 0, name: "項目4" },{ isRemove: 0, name: "項目5" },{ isRemove: 0, name: "項目6" }…

知識點 - 學習過程中積累

優化數據庫查詢訪問&#xff1a;使用存儲過程&#xff0c;利用連接池打開關閉數據庫&#xff1b;操作數據是&#xff0c;盡量避免裝箱&#xff1b;數據庫中為<NULL>的字段&#xff0c;sql語句中用is null讀取&#xff1b;開發復合控件的主要步驟&#xff1a;1&#xff09…

Mircosoft 正式把Windows Mobile改名為Windows Phone,你會因此而購買Windows Phone嗎?

簡介 本文講述Windows Phone改名事件&#xff0c;以及Windows Phone發展歷史和今后發展策略的想法。 事件 今天下班的時候看報紙&#xff0c;有一段新聞關于昨天(2009年10月6日)Mircosoft正式使用Windows Phone這個名字。我去到原先Windows Mobile的主頁&#xff0c;已經全部由…

【課后服務】20181022切蛋糕

權當拋磚引玉吧&#xff0c;掌握記搜的方法最重要。 #include<iostream> #include<cstring> #include<cstdio> using namespace std; int n,m,k; bool book[21][21]; int cake[21][21]; int dp[21][21][21][21]; int yt(int x,int y,int w,int h)//返回蛋糕…

我也來記錄我的一些開發心得和筆記!

博客園&#xff0c;我來了&#xff01; 轉載于:https://www.cnblogs.com/rose2007/archive/2007/07/11/814435.html

經典vim插件功能說明、安裝方法和使用方法介紹(已更新)

1 # 2 轉載請注明出處: http://blog.csdn.net/tge7618291 http://nuoerlz.is-programmer.com 8 # 9 1. 查看 key 相關信息說明的命令 :help keycodes 10 11 # 12 2. ctags 13 (1). 幫助手冊查看 14 :help usr_29 15 16 (2). 功能 17 ctags的功能, 只要在unix/lin…

【哈利波特】Sherbert Lemon對HP的解讀之11

NINEScar FaceThe characteristics of Harry’s scar change considerably.PS/SS – BurningQUOTEHarry, who was starting to feel warm and sleepy, looked up at the High Table again. Hagrid was drinking deeply from his goblet. Professor McGonagall was talking to P…

Linux 下, npm i 老是被killed 已殺死

2019獨角獸企業重金招聘Python工程師標準>>> node&#xff1a;v8.12.0 npm v6.4.1 npm i 安裝到一半會報這樣到錯誤&#xff0c;并終止&#xff1a; npm WARN deprecated socks1.1.10: If using 2.x branch, please upgrade to at least 2.1.6 to avoid a serious …

(轉)創建X509證書,并獲取證書密鑰的一點研究

創建X509證書&#xff0c;并獲取證書密鑰的一點研究 作者&#xff1a;肖波 個人博客&#xff1a;http://blog.csdn.net/eaglet ; http://www.cnblogs.com/eaglet 2007/7 南京 背景 服務器SSL數字證書和客戶端單位數字證書的格式遵循 X.509 標準。 X.509 是由國際電信聯盟&#…

css樣式優先級計算規則

css樣式的優先級分為引入優先級和聲明優先級。 引入優先級 引入樣式一般分為外部樣式&#xff0c;內部樣式&#xff0c;內聯樣式。 外部樣式&#xff1a;使用link引入的外部css文件。 內部樣式&#xff1a;使用style標簽書寫的css樣式。 內聯樣式&#xff1a;直接書寫在html標簽…