springboot項目+yml配置文件中的list示例

springboot配置文件可以是properties,也可以是yml類型,它們都支持字符型,也支持列表list類型,假定在yml配置文件中支持列表類型格式如下:

application.yml
demo:
  type:
    code:
      - 200
      - 201
      - 300
      - 400
      - 501

編寫對應的java類

package com.xxx.mongodemo.config;
import java.util.List;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
@Configuration
@ConfigurationProperties(prefix = "demo.type")
public class TypeCodeConfig {
    private List<String> code;
    
    public void setCode(List<String> code) {
        this.code = code;
    }
    
    public List<String> getCode() {
        return code;
    }
}

在其他地方使用:

package com.xxx.mongodemo;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
 
import com.xxx.mongodemo.config.TypeCodeConfig;
 
@SpringBootApplication
public class App implements CommandLineRunner{
    public static void main( String[] args ){
        SpringApplication.run(App.class, args);
    }
 
    @Autowired
    private TypeCodeConfig config ;
    
    @Override
    public void run(String... args) throws Exception {
        System.out.println(config.getCode());
    }
}
這里直接在啟動類中讀取這個list,這里需要注意,使用yml中配置的list需要先將對象注入,然后通過get方法讀取它的值。

打印信息如下所示,正確讀取了list的值:
2021-04-14 14:17:41.292  INFO 16140 --- [           main] com.xxx.mongodemo.App                    : Started App in 2.059 seconds (JVM running for 2.396)
[200, 201, 300, 400, 501]

有的地方直接通過數(shù)組(String[])去接收,而不是使用的是List<String>,看個人的需要,直接使用List其實是可以的,而且后續(xù)遍歷和取值也很方便。

這里總結(jié)一些特別的地方:

1、list類型的yml配置文件中,需要使用"-"來組成一個列表集合。

2、yml中的前綴沒有層級限制,如果是多層級,比如這里的demo/code,在java類中配置ConfigurationProperties注解的prefix就寫作"demo.code"

3、屬性名稱在yml文件中支持連字符"-",比如four-span,在java類中配置屬性就需要轉(zhuǎn)為駝峰式,fourSpan。

4、java類屬性需要配置set,get方法。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容