c语言编程笔录

首页 >   > 笔记大全

笔记大全

SpringBoot读取yml文件有哪几种方式

更新时间:2023-10-28
SpringBoot是一个常用的Java开发框架,在开发中,我们经常需要读取配置文件的参数来进行参数初始化。而在SpringBoot中,我们一般使用yml文件来进行配置。SpringBoot读取yml文件主要有以下几种方式:

1. 使用@Value注入

我们可以使用@Value注解来注入配置文件中的属性值。这种方式适用于只需要读取少量属性的情况。

@Configuration
@EnableConfigurationProperties // 这里可以不写,但是如果有多个配置类有用到配置信息,则依赖无法注入bean
@ConfigurationProperties(prefix = "person") // 在类上指定配置的前缀
public class Person {

    @Value("${person.name}")
    private String name;
    @Value("${person.age}")
    private Integer age;

    /** 省略getter/setter **/
}

2. 使用@ConfigurationProperties注入

我们也可以使用@ConfigurationProperties来注入属性值。

@Configuration
@EnableConfigurationProperties // 这里可以不写,但是如果有多个配置类有用到配置信息,则依赖无法注入bean
@ConfigurationProperties(prefix = "person") // 在类上指定配置的前缀
public class Person {

    private String name;
    private Integer age;

    /** 省略getter/setter **/
}

可以看到,这种方式与上面的@Value方式相似,只是没有在属性上指定注解,而是在类上使用@ConfigurationProperties指定了配置的前缀。这种方式适用于需要读取多个属性且属性比较齐全的情况。

3. 使用Environment注入

我们也可以使用Spring的Environment来读取yml文件的属性值。这种方式适用于需要读取所有属性的情况。

@Component
public class ConfigReader {

    @Autowired
    private Environment environment;

    public void read() {
        String name = environment.getProperty("person.name");
        Integer age = environment.getProperty("person.age", Integer.class); // 可以指定类型
    }
}

4. 使用@Configuration读取yml文件

我们还可以使用@Configuration来读取yml文件属性值。这种方式适用于需要读取多个yml文件或需要自定义解析规则的情况。

@Configuration
public class YmlConfig {

    @Bean
    @ConfigurationProperties(prefix = "person")
    public Person personConfig() {
        return new Person();
    }
}

以上就是SpringBoot读取yml文件的四种方式,我们可以根据具体需求来选择合适的方式来读取yml文件。

总结:

SpringBoot是一个常用的Java开发框架,读取配置文件在开发中是必不可少的。而对于yml文件的读取,SpringBoot提供了多种方式,其中包括使用@Value注入、使用@ConfigurationProperties注入、使用Environment注入和使用@Configuration读取yml文件。我们可以根据实际需求来选择合适的方式,来读取yml文件中的属性值。