springboot中java代碼讀取yml文件中的數組


今天在運行項目時想直接把yml文件中的一個數組注入到java類的一個對象上,結果怎么弄都不通過

一直都在用Spring的@Value注解讀取yml中的配置,這兩天在讀取配置的時候,想讀取yml中配置的一個數組,通過@Vaule一直獲取不到,通過一番資料的查詢,才徹底清楚了@Vaule的使用情況。

在Spring中讀取配置文件的快捷方法常見的有兩種,一個是通過@Vaule注解進行單一字段的注入,另外一種方法就是通過@ConfigurationProperties注解來進行批量注入。

@ConfigurationProperties注解屬於SpringBoot,不在SpringFramework里面

這兩種注入方式各有自己的優勢和使用場景。

@Value @ConfigurationProperties
使用場景 單一屬性注入,注解寫在類的屬性上 批量注入,注解寫在類上
松散語法 不支持 支持
SpEL 支持 不支持
JSR303數據校驗@Validated 不支持 支持
復雜類型封裝(數組、Map、對象等) 不支持 (這么說不嚴謹) 支持

出問題的注入方式

報錯:java.lang.IllegalArgumentException: Could not resolve placeholder 'list' in value "${list}"

正確的注入方式:(yml文件都是application.yml不是自定義的yml)
1.@ConfigurationProperties(prefix = "dog")(這里的dog與yml文件中的dog相對應)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM