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