application.yml:
name: zhangsan
bean:
public class mybean { @value("${name}") private string name;}
2.environment对象我们可以通过注入environment对象来读取yml值,如:
@autowiredprivate 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一样读取值,如:
@beanpublic 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种方式的详细内容。
