We can add it to the properties of the bean Use the @Value annotation to directly read the value in yml, such as:
application.yml:
name: Zhangsan
Bean:
public class MyBean { @Value("${name}") private String name; }
We can read the yml value by injecting the Environment object, such as:
@Autowired private Environment environment; public void doSomething() { String name = environment.getProperty("name"); }
We can use @ConfigurationProperties Annotations map values in yml to bean properties, such as:
application.yml:
my: name: Zhangsan age: 18
Bean:
@Component @ConfigurationProperties(prefix = "my") public class MyProps { private String name; private int age; // getter and setter }
We can use YmlPropertySourceFactory to load the yml file, and then read the value like ordinary Properties, such as:
@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; }
If there are multiple documents separated by — in the yml file, we can use the @YamlComponent annotation to map each document to a bean, such as:
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; }
You can choose 5 main methods according to your needs. Spring Boot can read yml files. yml is the default configuration file format of Spring Boot. Understanding how to manipulate yml files will help us achieve system configuration flexibility.
The above is the detailed content of 3 ways for SpringBoot to read yml files. For more information, please follow other related articles on the PHP Chinese website!