摘要:采納了建立生產(chǎn)就緒應(yīng)用程序的觀點(diǎn)。優(yōu)先于配置的慣例,旨在讓您盡快啟動(dòng)和運(yùn)行。啟動(dòng)工程,訪問我們會(huì)發(fā)現(xiàn)配置文件信息讀到了。三自定義配置文件上面介紹的是我們都把配置文件寫到中。源碼下載五參考文獻(xiàn)干貨系列二配置文件解析屬性配置文件詳解
springboot采納了建立生產(chǎn)就緒Spring應(yīng)用程序的觀點(diǎn)。 Spring Boot優(yōu)先于配置的慣例,旨在讓您盡快啟動(dòng)和運(yùn)行。在一般情況下,我們不需要做太多的配置就能夠讓spring boot正常運(yùn)行。在一些特殊的情況下,我們需要做修改一些配置,或者需要有自己的配置屬性。
一、自定義屬性當(dāng)我們創(chuàng)建一個(gè)springboot項(xiàng)目的時(shí)候,系統(tǒng)默認(rèn)會(huì)為我們?cè)趕rc/main/java/resources目錄下創(chuàng)建一個(gè)application.properties。個(gè)人習(xí)慣,我會(huì)將application.properties改為application.yml文件,兩種文件格式都支持。
在application.yml自定義一組屬性:
my: name: forezp age: 12
如果你需要讀取配置文件的值只需要加@Value(“${屬性名}”):
@RestController public class MiyaController { @Value("${my.name}") private String name; @Value("${my.age}") private int age; @RequestMapping(value = "/miya") public String miya(){ return name+":"+age; } }
啟動(dòng)工程,訪問:localhost:8080/miya,瀏覽器顯示:
forezp:12二、將配置文件的屬性賦給實(shí)體類
當(dāng)我們有很多配置屬性的時(shí)候,這時(shí)我們會(huì)把這些屬性作為字段來創(chuàng)建一個(gè)javabean,并將屬性值賦予給他們,比如:
my: name: forezp age: 12 number: ${random.int} uuid : ${random.uuid} max: ${random.int(10)} value: ${random.value} greeting: hi,i"m ${my.name}
其中配置文件中用到了${random} ,它可以用來生成各種不同類型的隨機(jī)值。
怎么講這些屬性賦于給一個(gè)javabean 呢,首先創(chuàng)建一個(gè)javabean :
@ConfigurationProperties(prefix = "my") @Component public class ConfigBean { private String name; private int age; private int number; private String uuid; private int max; private String value; private String greeting; 省略了getter setter....
需要加個(gè)注解@ConfigurationProperties,并加上它的prrfix。另外@Component可加可不加。另外spring-boot-configuration-processor依賴可加可不加,具體原因不詳。
org.springframework.boot spring-boot-configuration-processor true
另外需要在應(yīng)用類或者application類,加EnableConfigurationProperties注解。
@RestController @EnableConfigurationProperties({ConfigBean.class}) public class LucyController { @Autowired ConfigBean configBean; @RequestMapping(value = "/lucy") public String miya(){ return configBean.getGreeting()+" >>>>"+configBean.getName()+" >>>>"+ configBean.getUuid()+" >>>>"+configBean.getMax(); }
啟動(dòng)工程,訪問localhost:8080/lucy,我們會(huì)發(fā)現(xiàn)配置文件信息讀到了。
三、自定義配置文件上面介紹的是我們都把配置文件寫到application.yml中。有時(shí)我們不愿意把配置都寫到application配置文件中,這時(shí)需要我們自定義配置文件,比如test.properties:
com.forezp.name=forezp com.forezp.age=12
怎么將這個(gè)配置文件信息賦予給一個(gè)javabean呢?
@Configuration @PropertySource(value = "classpath:test.properties") @ConfigurationProperties(prefix = "com.forezp") public class User { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
在最新版本的springboot,需要加這三個(gè)注解。@Configuration
@PropertySource(value = “classpath:test.properties”)
@ConfigurationProperties(prefix = “com.forezp”);在1.4版本需要
PropertySource加上location。
@RestController @EnableConfigurationProperties({ConfigBean.class,User.class}) public class LucyController { @Autowired ConfigBean configBean; @RequestMapping(value = "/lucy") public String miya(){ return configBean.getGreeting()+" >>>>"+configBean.getName()+" >>>>"+ configBean.getUuid()+" >>>>"+configBean.getMax(); } @Autowired User user; @RequestMapping(value = "/user") public String user(){ return user.getName()+user.getAge(); } }
啟動(dòng)工程,打開localhost:8080/user;瀏覽器會(huì)顯示:
forezp12四、多個(gè)環(huán)境配置文件
在現(xiàn)實(shí)的開發(fā)環(huán)境中,我們需要不同的配置環(huán)境;格式為application-{profile}.properties,其中{profile}對(duì)應(yīng)你的環(huán)境標(biāo)識(shí),比如:
application-test.properties:測(cè)試環(huán)境 application-dev.properties:開發(fā)環(huán)境 application-prod.properties:生產(chǎn)環(huán)境
怎么使用?只需要我們?cè)赼pplication.yml中加:
spring: profiles: active: dev
其中application-dev.yml:
server: port: 8082
啟動(dòng)工程,發(fā)現(xiàn)程序的端口不再是8080,而是8082。
源碼下載:https://github.com/forezp/Spr...
五、參考文獻(xiàn)spring-boot-reference-guide-zh
pring Boot干貨系列:(二)配置文件解析
Spring Boot屬性配置文件詳解
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/70357.html
這篇文章主要介紹如何在springboot中如何創(chuàng)建含有多個(gè)module的工程,栗子中含有兩個(gè) module,一個(gè)作為libarary. 工程,另外一個(gè)是主工程,調(diào)用libary .其中l(wèi)ibary jar有一個(gè)服務(wù),main工程調(diào)用這個(gè)服務(wù)。 創(chuàng)建根工程 創(chuàng)建一個(gè)maven 工程,其pom文件為: 4.0.0 com.forezp springboot-multi-...
摘要:如何測(cè)試進(jìn)入到項(xiàng)目目錄,此處以我本地目錄為主然后打開程序,不會(huì)在當(dāng)前目錄打開的請(qǐng)自行百度,輸入打包完畢后進(jìn)入到目錄中去,我們可以發(fā)現(xiàn)一個(gè)名為的包接著在打開程序,輸入。 SpringBoot 是為了簡(jiǎn)化 Spring 應(yīng)用的創(chuàng)建、運(yùn)行、調(diào)試、部署等一系列問題而誕生的產(chǎn)物,自動(dòng)裝配的特性讓我們可以更好的關(guān)注業(yè)務(wù)本身而不是外部的XML配置,我們只需遵循規(guī)范,引入相關(guān)的依賴就可以輕易的搭建出...
摘要:首先聲明下,是基于注釋來生成文檔的,它不基于任何框架,而且支持大多數(shù)編程語言,為了系列的完整性,所以標(biāo)了個(gè)題。二準(zhǔn)備工作安裝完安裝它的項(xiàng)目源碼。輸命令輸入目錄輸出目錄是我的工程名。 首先聲明下,apidoc是基于注釋來生成文檔的,它不基于任何框架,而且支持大多數(shù)編程語言,為了springboot系列的完整性,所以標(biāo)了個(gè)題。 一、apidoc簡(jiǎn)介 apidoc通過在你代碼的注釋來生成ap...
摘要:前言由于寫的文章已經(jīng)是有點(diǎn)多了,為了自己和大家的檢索方便,于是我就做了這么一個(gè)博客導(dǎo)航。 前言 由于寫的文章已經(jīng)是有點(diǎn)多了,為了自己和大家的檢索方便,于是我就做了這么一個(gè)博客導(dǎo)航。 由于更新比較頻繁,因此隔一段時(shí)間才會(huì)更新目錄導(dǎo)航哦~想要獲取最新原創(chuàng)的技術(shù)文章歡迎關(guān)注我的公眾號(hào):Java3y Java3y文章目錄導(dǎo)航 Java基礎(chǔ) 泛型就這么簡(jiǎn)單 注解就這么簡(jiǎn)單 Druid數(shù)據(jù)庫連接池...
閱讀 1318·2021-10-27 14:14
閱讀 3574·2021-09-29 09:34
閱讀 2477·2019-08-30 15:44
閱讀 1716·2019-08-29 17:13
閱讀 2569·2019-08-29 13:07
閱讀 867·2019-08-26 18:26
閱讀 3342·2019-08-26 13:44
閱讀 3210·2019-08-26 13:37