首頁 > Java > java教程 > SpringBoot讀取yml檔案的3種方式

SpringBoot讀取yml檔案的3種方式

WBOY
發布: 2023-06-29 23:25:17
轉載
1025 人瀏覽過


Spring Boot讀取yml檔案的主要方式有以下幾種:

#1.@Value註解

我們可以在bean的屬性上使用@Value註解,直接讀取yml中的值,如:

application.yml:

name: Zhangsan
登入後複製

Bean:

public class MyBean {
    @Value("${name}")
    private String name;
}
登入後複製

2.Environment物件

我們可以透過注入Environment物件來讀取yml值,如:

@Autowired
private Environment environment;
public void doSomething() {
    String name = environment.getProperty("name");
}
登入後複製

3.@ConfigurationProperties註解

#我們可以使用@ConfigurationProperties註解將yml中的值對應到bean的屬性上,如:

application.yml:

my: 
    name: Zhangsan
    age: 18
登入後複製

Bean:

#
@Component 
@ConfigurationProperties(prefix = "my")
public class MyProps {
    private String name;
    private int age;
    // getter and setter
}
登入後複製

4.YmlPropertySourceFactory

我們可以使用YmlPropertySourceFactory來載入yml檔案,然後像普通Properties一樣讀取值,如:

@Bean
public static PropertySourcesPlaceholderConfigurer properties() {
    YamlPropertiesFactoryBean factory = new YamlPropertiesFactoryBean();
    factory.setResources(new ClassPathResource("application.yml"));
    factory.getObject().forEach((k, v) -> System.out.println(k + ": " + v));
    return factory; 
}
登入後複製

5.@YamlComponent註解

如果yml檔案中以—分隔了多個文件,我們可以使用@YamlComponent註解將每份文件對應到一個bean上,如:

application.yml:

my:
  name: Zhangsan 
---
my: 
  name: Lisi
登入後複製

Beans:

@Component("first") 
@YamlComponent(value = "my.first")
public class FirstProps {
    private String name;
}
@Component("second")  
@YamlComponent(value = "my.second")
public class SecondProps {
    private String name; 
}
登入後複製

可以根據需求選擇其中5種主要方式,Spring Boot可以讀取yml檔案。 yml作為Spring Boot預設的設定檔格式,理解如何操縱yml檔案將有助於我們實現系統配置的靈活性。

以上是SpringBoot讀取yml檔案的3種方式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
yml
來源:yisu.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板