SpringBoot获取配置的几种方式

Posted 袖子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot获取配置的几种方式相关的知识,希望对你有一定的参考价值。

一、引入依赖

<!-- 核心启动器 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>

二、application.properties

server.port=9080
user.username=lin@j
user.age=20

 三、读取配置信息的几种方式

1. 利用@PropertySource获取resource目录下的资源,Environment获取属性

@Component
@PropertySource(value = {"classpath:application.properties"})
public class PropertiesConfigOne {

    @Autowired
    private Environment environment;

    public void printProperties(){
        String userName = environment.getProperty("user.username");
        System.out.println("user.username:" + userName);
        String age = environment.getProperty("user.age");
        System.out.println("user.age:" + age);
    }
}

2. 利用@PropertySource获取resource目录下的资源,@ConfigurationProperties找到该资源的前缀, 通过getter、setter方法注入及获取配置

@Component
@PropertySource(value = {"classpath:application.properties"})
@ConfigurationProperties(prefix = "user")
public class PropertiesConfigTwo {

    //属性上不用使用@Value("${username}"), 这样会报错的
    private String username;
    private Integer age;

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public void printProperties(){
        System.out.println("username:" + username);
        System.out.println("age:" + age);
    }

}

3. 利用PropertiesLoaderUtil加载配置文件

@Component
public class PropertiesConfigThree {

    public void printProperties() throws IOException {
        //PropertiesLoaderUtils是spring-core提供的
        Properties properties = PropertiesLoaderUtils.loadAllProperties("application.properties");
        System.out.println("user.username:" + properties.getProperty("user.username"));
        System.out.println("user.age:" + properties.getProperty("user.age"));
    }
}

 

以上是关于SpringBoot获取配置的几种方式的主要内容,如果未能解决你的问题,请参考以下文章

一张图,理顺 Spring Boot应用在启动阶段执行代码的几种方式

一张图,理顺 Spring Boot应用在启动阶段执行代码的几种方式

一张图帮你记忆,Spring Boot 应用在启动阶段执行代码的几种方式

springboot 获取控制器参数的几种方式

SpringBoot读取配置数据的几种方式

SpringBoot 获取上下文,获取bean的几种中方式