SpringBoot讀取yaml文件操作詳解
1. 單個(gè)屬性
yaml 內(nèi)的屬性如下:
server: port: 80
只需在成員變量上注解 @Value(“${屬性名}”) 即可,用美元符號(hào)獲取屬性值
如下例:
@RestController @RequestMapping("/") public class DemoController { @Value("${server.port}") private String port; @GetMapping public String func() { return "server port: " + port; } }
2. 全部屬性
yaml 內(nèi)的屬性如下:
server: port: 80 logging: level: root: warn
定義 Environment 成員變量,注解 @Autowired 即可,通過(guò) .gerProperty(屬性名) 函數(shù)來(lái)獲取屬性值
如下例:
@RestController @RequestMapping("/") public class DemoController { @Autowired private Environment environment; @GetMapping public String func() { String port = environment.getProperty("server.port"); String level = environment.getProperty("logging.level.root"); return "server port: " + port + "\n" + "logging level: " + level; } }
3. 對(duì)象屬性
yaml 內(nèi)的屬性如下:
mybook: name: 《SpringBoot入門》 price: 28.00 tags: [編程, Java, Spring]
首先要定義一個(gè) bean,給類注解 @Component 表示添加到 Spring 容器,注解 @ConfigurationProperties 設(shè)置屬性 prefix 為配置中的對(duì)象名,如下例:
@Component @ConfigurationProperties(prefix = "mybook") public class Book { private String name; private Double price; private String[] tags; // 省略了成員方法 }
使用自動(dòng)裝配填充即可,如下例:
@RestController @RequestMapping("/") public class DemoController { @Autowired private Book book; @GetMapping public String func() { return book.toString(); } }
補(bǔ)充:
當(dāng)有多個(gè)類注解 prefix 的值為同一個(gè)對(duì)象時(shí),IDEA會(huì)報(bào)錯(cuò) Duplicated prefix,但不影響項(xiàng)目運(yùn)行
補(bǔ)充
在剛才自定義 bean 時(shí),IDEA 會(huì)報(bào)一個(gè)警告 Spring Boot Configuration Annotation Processor not configured
,顯示在頁(yè)面的頂部,這個(gè)警告不會(huì)影響項(xiàng)目運(yùn)行
在 pom.xml 中添加下面的依賴就可以解決:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> </dependency>
到此這篇關(guān)于SpringBoot讀取yaml文件操作詳解的文章就介紹到這了,更多相關(guān)SpringBoot讀取yaml內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java中synchronized關(guān)鍵字的3種寫(xiě)法實(shí)例
synchronized是Java中的關(guān)鍵字,是一種同步鎖,下面這篇文章主要給大家介紹了關(guān)于java中synchronized關(guān)鍵字的3種寫(xiě)法,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2021-11-11SpringBoot接口調(diào)用之后報(bào)404問(wèn)題的解決方案
這篇文章主要介紹了SpringBoot接口調(diào)用之后報(bào)404問(wèn)題的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。2021-06-06Nacos-SpringBoot框架啟動(dòng)不加載bootstrap.yml的解決
這篇文章主要介紹了Nacos-SpringBoot框架啟動(dòng)不加載bootstrap.yml的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11Mybatis -如何處理clob類型數(shù)據(jù)
這篇文章主要介紹了Mybatis 如何處理clob類型數(shù)據(jù)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06SpringBoot 鉤子接口的實(shí)現(xiàn)代碼
本文主要介紹了SpringBoot 鉤子接口,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-08-08