詳解Springboot配置文件的使用
如果使用IDEA創(chuàng)建Springboot項(xiàng)目,默認(rèn)會(huì)在resource目錄下創(chuàng)建application.properties文件,在springboot項(xiàng)目中,也可以使用yml類型的配置文件代替properties文件
一、單個(gè)的獲取配置文件中的內(nèi)容
在字段上使用@Value("${配置文件中的key}")的方式獲取單個(gè)的內(nèi)容
1.在resource目錄下創(chuàng)建application.yml文件,并添加一些配置,在yml文件中,key:后面需要添加一個(gè)空格,然后是value值,假設(shè)配置如下
#注意:在yml文件中添加value值時(shí),value前面需要加一個(gè)空格 ip: 127.0.0.0 port: 8080
2.創(chuàng)建一個(gè)ConfigController類,獲取配置文件中的內(nèi)容并賦值給相應(yīng)的字段
package com.example;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class ConfigController {
@Value("${ip}")//獲取application.yml文件中名為ip的value值
private String ip;
@Value("${port}")//獲取application.yml文件中名為port的value值,并且自動(dòng)完成數(shù)據(jù)類型轉(zhuǎn)換
private Integer port;
@RequestMapping("/config")
public String config() {
return "ip:"+ip+",port:"+port;
}
}
3.在SrpingbootdemoApplication中啟動(dòng)項(xiàng)目
package com.example;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
//入口
@SpringBootApplication
public class SpringbootdemoApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootdemoApplication.class, args);
}
}
4.在瀏覽器中輸入http://localhost:8080/config,可以看到輸出了配置文件中配置的內(nèi)容

二、使用Bean自動(dòng)注入獲取配置文件中的內(nèi)容
假如配置文件中有很多內(nèi)容,一個(gè)一個(gè)獲取將會(huì)很麻煩,那么我們另外一種方式去獲取配置文件中的信息
1.在配置文件中添加以下信息(注意格式),此處我們使用了一個(gè)名為devconfig的前綴
devconfig: ip: 127.0.0.0 port: 8080
2.創(chuàng)建ConfigBean,在類中添加@Componet和@ConfigurationProperties注解,其中prefix設(shè)置為devconfig,將會(huì)獲取yml中前綴為devconfig下的配置信息
package com.example;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties(prefix = "devconfig")//獲取前綴為devconfig下的配置信息
public class ConfigBean {
private String ip;//名字與配置文件中一致
private Integer port;
public String getIp() {
return ip;
}
public void setIp(String ip) {
this.ip = ip;
}
public Integer getPort() {
return port;
}
public void setPort(Integer port) {
this.port = port;
}
}
3.在ConfigController中使用@Autowrite對(duì)bean自動(dòng)注入,實(shí)例化bean
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class ConfigController {
// @Value("${ip}")//獲取application.yml文件中名為ip的value值
// private String ip;
//
// @Value("${port}")//獲取application.yml文件中名為port的value值,并且自動(dòng)完成數(shù)據(jù)類型轉(zhuǎn)換
// private Integer port;
//自動(dòng)注入,實(shí)例化bean
@Autowired
private ConfigBean configBean;
@RequestMapping("/config")
public String config() {
return "另一種方式: ip:"+configBean.getIp()+",port:"+configBean.getPort();
}
}
4.運(yùn)行程序,輸入http://localhost:8080/config進(jìn)行測(cè)試

三、多個(gè)配置文件切換使用
1.假設(shè)開(kāi)發(fā)環(huán)境使用ip為:127.0.0.0 使用端口為:8080
生產(chǎn)環(huán)境使用ip為:127.0.0.1 使用端口為:8081
下面來(lái)修改配置文件,在resource目錄下創(chuàng)建一個(gè)名為application-dev.yml文件開(kāi)發(fā)環(huán)境使用配置文件和application-produce.yml生產(chǎn)環(huán)境配置文件
application-dev.yml
config: ip: 127.0.0.0 port: 8080
application-produce.yml
config: ip: 127.0.0.1 port: 8081
application.yml中配置生效的配置文件,此處設(shè)為produce,也就是使用application-produce.yml文件
spring: profiles: active: produce
2.修改ConfigBean的prefix為config
package com.example;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties(prefix = "config")
public class ConfigBean {
private String ip;//名字與配置文件中一致
private Integer port;
public String getIp() {
return ip;
}
public void setIp(String ip) {
this.ip = ip;
}
public Integer getPort() {
return port;
}
public void setPort(Integer port) {
this.port = port;
}
}
3.運(yùn)行程序,在瀏覽器輸入http://localhost:8080/config進(jìn)行測(cè)試

4.也可通過(guò)啟動(dòng)jar包時(shí)添加參數(shù)來(lái)更改生效的配置文件,命令為
Java -jar XXX.jar --spring.profiles.active=poduce
以上所述是小編給大家介紹的詳解Springboot配置文件的使用,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
MyBatis?resultMap?id標(biāo)簽的錯(cuò)誤使用方式
這篇文章主要介紹了MyBatis?resultMap?id標(biāo)簽的錯(cuò)誤使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01
Java基礎(chǔ)學(xué)習(xí)筆記之?dāng)?shù)組詳解
這篇文章主要介紹了Java基礎(chǔ)學(xué)習(xí)筆記之?dāng)?shù)組,結(jié)合實(shí)例形式詳細(xì)分析了java的基本概念、定義、迭代、輸出、反轉(zhuǎn)、排序等常用操作技巧,需要的朋友可以參考下2019-08-08
SpringMVC的處理器攔截器HandlerInterceptor詳解
這篇文章主要介紹了SpringMVC的處理器攔截器HandlerInterceptor詳解,SpringWebMVC的處理器攔截器,類似于Servlet開(kāi)發(fā)中的過(guò)濾器Filter,用于處理器進(jìn)行預(yù)處理和后處理,需要的朋友可以參考下2024-01-01
java設(shè)計(jì)模式責(zé)任鏈模式原理案例詳解
一個(gè)事件需要經(jīng)過(guò)多個(gè)對(duì)象處理是一個(gè)挺常見(jiàn)的場(chǎng)景,譬如采購(gòu)審批流程,請(qǐng)假流程,軟件開(kāi)發(fā)中的異常處理流程,web請(qǐng)求處理流程等各種各樣的流程,可以考慮使用責(zé)任鏈模式來(lái)實(shí)現(xiàn)2021-09-09
springboot項(xiàng)目啟動(dòng)慢的問(wèn)題排查方式
這篇文章主要介紹了springboot項(xiàng)目啟動(dòng)慢的問(wèn)題排查方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09
Java并發(fā)多線程編程之CountDownLatch的用法
這篇文章主要介紹了Java并發(fā)多線程編程之CountDownLatch的用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06

