SpringBoot如何從配置文件中讀取配置參數(shù)
前言
在生產(chǎn)環(huán)境中,經(jīng)常會(huì)用到各種各樣的參數(shù),為了避免代碼太過死板,一般將參數(shù)寫入配置文件,然后需要用到參數(shù)的時(shí)候從配置文件中讀取
下面總結(jié)出幾種從配置文件中讀取配置參數(shù)的方法。
環(huán)境搭建
現(xiàn)有配置文件application.properties,內(nèi)容如下所示
# 接口請(qǐng)求基礎(chǔ)路徑 base.param.url = http://192.168.1.110:18081/interaction/v1/ # 平臺(tái)標(biāo)識(shí) base.param.platformID = 123456789 # 平臺(tái)密鑰 base.param.platformSecret = AaBbCcDd
下面實(shí)現(xiàn)從配置文件中讀取配置參數(shù)
@Value注解讀取配置參數(shù)
1、非靜態(tài)參數(shù)
一般情況下直接使用@Value注解即可獲取到參數(shù),然后就可以在方法中使用該參數(shù),比如在控制層中使用
使用方法如下:
@Value("${base.param.url}") private String baseUrl; @Value("${base.param.platformID}") private String platformID; @Value("${base.param.platformSecret}") private String platformSecret;
2、靜態(tài)參數(shù)
當(dāng)工具類中的方法需要從配置文件讀取參數(shù)時(shí),需要將參數(shù)定義為靜態(tài),才可以在靜態(tài)方法中獲取到,這時(shí)候就不能只配置個(gè)@Value注解就行了
實(shí)現(xiàn)方法如下:
@Component public class Common { private static String platformID; @Value("${base.param.platformID}") public void setPlatformID(String platformID) { Common.platformID = platformID; } }
將@Value注解在set方法上,并且類上要加@Component注解。
@PropertySource注解創(chuàng)建配置類
目前該注解只支持properties文件引入,并不支持yml。
1、maven依賴
<!--使用xml或properties配置所依賴的包 @PropertySource--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency>
2、創(chuàng)建配置類
import lombok.Data; import org.springframework.boot.SpringBootConfiguration; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.PropertySource; @Data @SpringBootConfiguration @PropertySource(value = {"classpath:application.properties"}) @ConfigurationProperties(prefix = "base.param") public class ParamProperties { // 接口請(qǐng)求基礎(chǔ)路徑 private String url; // 平臺(tái)標(biāo)識(shí) private String platformID; // 平臺(tái)密鑰 private String platformSecret; }
其中:
- classpath指向?qū)?yīng)的配置文件名稱
- prefix指向配置文件中的名稱
3、使用方式
public class ResponseTask { @Autowired private ParamProperties paramProperties; private String getToken(){ TokenEntity tokenEntity = new TokenEntity(); tokenEntity.setPlatformID(paramProperties.getPlatformID()); tokenEntity.setPlatformSecret(paramProperties.getPlatformSecret()); } }
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- SpringBoot使用Jasypt對(duì)配置文件和數(shù)據(jù)庫密碼加密
- springboot中非容器類如何獲取配置文件數(shù)據(jù)
- 詳解SpringBoot依賴注入和使用配置文件
- SpringBoot中的配置文件加載優(yōu)先級(jí)詳解
- Springboot如何實(shí)現(xiàn)對(duì)配置文件中的明文密碼加密
- SpringBoot中的YAML配置文件和日志詳解
- SpringBoot實(shí)現(xiàn)配置文件加密的方案分享
- SpringBoot綁定配置文件中變量的四種方式總結(jié)
- SpringBoot讀取多環(huán)境配置文件的幾種方式
- SpringBoot中獲取配置文件的注解詳解
- Spring Boot 配置文件(application.yml、application-dev.yml、application-test.yml)
相關(guān)文章
Java中HTTP GET方法調(diào)用帶有body的問題解決
這篇文章主要為大家詳細(xì)介紹了Java如何解決HTTP GET方法調(diào)用帶有body的問題,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以參考一下2024-02-02Java 實(shí)現(xiàn)鏈表結(jié)點(diǎn)插入
這篇文章主要介紹了Java 實(shí)現(xiàn)鏈表結(jié)點(diǎn)插入操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-02-02Java Web監(jiān)聽器Listener接口原理及用法實(shí)例
這篇文章主要介紹了Java Web監(jiān)聽器Listener接口原理及用法實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06Java的Tomcat和Servlet的運(yùn)行原理詳解
這篇文章主要為大家詳細(xì)介紹了Java的Tomcat和Servlet,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-03-03