我們可以在bean的屬性上使用@Value註解,直接讀取yml中的值,如:
application.yml:
name: Zhangsan
Bean:
public class MyBean { @Value("${name}") private String name; }
我們可以透過注入Environment物件來讀取yml值,如:
@Autowired private Environment environment; public void doSomething() { String name = environment.getProperty("name"); }
#我們可以使用@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 }
我們可以使用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; }
如果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中文網其他相關文章!