SpringBoot通过@ConfigurationProperties注解和@Value读取资源文件中的值

1,527 阅读1分钟

在springBoot的项目resource文件夹下添加文件resource.properties:

properties.test.name=testName
properties.test.password=123456

使用@ConfigurationProperties的方式

新建文件Resource1.java:

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;

/**
 * @Author gaoyiyang
 * @Date 2019/3/30 21:08
 * @Version 1.0
 **/
@Configuration
@PropertySource(value="classpath:resource.properties")
@ConfigurationProperties(prefix = "properties.test")
public class Resource1 {
    private String name;
    private String password;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

使用@Value注解的方式

新建文件Resource2.java

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Service;

/**
 * @Author gaoyiyang
 * @Date 2019/3/31 22:40
 * @Version 1.0
 **/
@Configuration
@Service
@PropertySource("classpath:resource.properties")
public class Resource2 {
    @Value("${properties.test.name}")
    private String name;
    @Value("${properties.test.password}")
    private String password;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

测试:

@Autowired
private Resource1 resource1;
@Autowired
private Resource2 resource2;

@Test
public void contextLoads() {
	System.out.println(resource1.getName());
	System.out.println(resource2.getPassword());
}

##参考

配置文件配置
Spring Boot读取properties配置文件中的数据