Spring Boot 讀取配置內容的三種方式
在實際工作中我們無法避免如何區分多環境的問題,開發環境連線的是開發環境的資料庫,測試環境連線的是測試環境的資料庫,等等,不同環境下的配置資訊是不一樣的。在使用SpringBoot時,我們可以為每個環境定義一個配置檔案,將對應配置寫在yaml或者properties中,最後通過 spring.profiles.active 來啟用對應的配置檔案。
我們往往會讀取配置檔案中的配置資訊,除了Java提供的Properties類,還可以通過另外的三種方式在 Spring Boot 中讀取配置內容:Environment,@Value,@ConfigurationProperties。
Environment
Environment 用於管理當前的應用環境資訊,定義了獲取 Profile 的方法,同時繼承了 PropertyResolver,PropertyResolver 提供了屬性訪問的相關方法。所以我們通過 Environment 的 getProperty() 方法讀取指定配置 Key 的內容。
通過注入Environment的例項,然後呼叫 getProperty() 方法獲取對應的引數:
@RestController
public class TestApi {
@Autowired
private Environment environment;
@GetMapping("/test")
public void test() {
String port = environment.getProperty("server.port");
System.out.println(port);
}
}
@Value
在 Controller 中定義一個 port 欄位,在 port 上使用 @Value 注入當前專案的埠值,冒號後面是在無值的情況下給的預設值,避免沒配置值的報錯問題。
@RestController
public class TestApi {
@Value("${server.port:8080}")
private String port;
@GetMapping("/test")
public void test() {
System.out.println(port);
}
}
@ConfigurationProperties
前兩種方式都是針對某一個欄位屬性的,但是有時候我們要需要一系列相關屬性(例如資料庫的地址,埠,賬號等),我們可以使用@ConfigurationProperties將這一系列的屬性封裝到某個類中。之後在使用時注入這個類就行。
/**
* 編寫配置類
*/
@ConfigurationProperties(prefix = "server")
public class ConfigProperties {
private String port;
//省略get,set方法
}
@RestController
public class TestApi {
@Autowired
private ConfigProperties configProperties ;
@GetMapping("/test")
public void test() {
System.out.println(configProperties.getPort());
}
}
相關文章
- Spring Boot讀取配置檔案的幾種方式Spring Boot
- 精進 Spring Boot 03:Spring Boot 的配置檔案和配置管理,以及用三種方式讀取配置檔案Spring Boot
- spring-boot-route(二)讀取配置檔案的幾種方式Springboot
- Spring boot 讀取properties檔案的四種方式Spring Boot
- Spring Boot 2 實戰:常用讀取配置的方式Spring Boot
- Spring Boot中的 6 種API請求引數讀取方式Spring BootAPI
- spring boot(二)配置資訊的讀取Spring Boot
- Spring Boot 入門系列(二十五)讀取配置檔案的幾種方式詳解!Spring Boot
- Spring Boot中@Import三種使用方式!Spring BootImport
- [轉]Spring Boot讀取配置檔案常用方式[強烈建議閱讀]Spring Boot
- spring- properties 讀取的五種方式Spring
- spring boot學習(7)— 配置資訊的獲取方式Spring Boot
- php獲取網頁內容的三種方法PHP網頁
- Spring Boot的五種部署方式Spring Boot
- Spring Boot EL獲取配置檔案中的值的方式Spring Boot
- python讀取文字檔案內容的方法主要分為哪三種?Python
- spring、spring-boot配置檔案屬性內容加解密Springboot解密
- Spring Boot Filter中擷取響應輸出內容Spring BootFilter
- 多種方式讀取 MySQL 資料庫配置MySql資料庫
- SpringBoot讀取配置資料的幾種方式Spring Boot
- 【JavaEE】讀取配置檔案路徑的幾種方式Java
- Spring Boot開啟的2種方式Spring Boot
- Python四種逐行讀取檔案內容的方法Python
- PHP 讀取 WORD 內容PHP
- PHP讀取WORD內容PHP
- js 讀取 input file 的內容JS
- Spring Boot入門(二):使用Profile實現多環境配置管理&獲取配置檔案值的兩種方式Spring Boot
- Spring Boot啟動後讀取jar包內部檔案Spring BootJAR
- HTTP三種快取方式HTTP快取
- Spring Boot 專案鑑權的 4 種方式Spring Boot
- 竊取郵件內容 破解Email賬號的三種方法(轉)AI
- Spring boot學習(八)Spring boot配置ehcache快取框架Spring Boot快取框架
- Hive metastore三種配置方式HiveAST
- Spring-讀取配置Spring
- 解析三種遠端容災方式
- Spring事務配置的五種方式Spring
- Java Spring AOP的兩種配置方式JavaSpring
- php讀取檔案的幾種方式PHP