Java自定义属性文件在Spring中读取整数值

时间:2019-05-02 13:42:33

标签: spring spring-boot properties-file

嗨,我有一个自己的properties文件,但是当我想在返回order时获得0值时,如何在自定义spring属性类中读取整数值

@Component 
@PropertySource("classpath:my.properties")
@ConfigurationProperties 
public class MyProperties {

    private Integer order;

my.properties这样的文件

enableAll=true
order=1
myvalue=ABC

1 个答案:

答案 0 :(得分:0)

我认为您可能缺少吸气剂和吸气剂。

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;

@Component
@PropertySource("classpath:my.properties")
@ConfigurationProperties
public class MyProperties {
    private boolean enableAll;
    private Integer order;
    private String myvalue;


    public boolean isEnableAll() {
        return enableAll;
    }

    public void setEnableAll(boolean enableAll) {
        this.enableAll = enableAll;
    }

    public Integer getOrder() {
        return order;
    }

    public void setOrder(Integer order) {
        this.order = order;
    }

    public String getMyvalue() {
        return myvalue;
    }

    public void setMyvalue(String myvalue) {
        this.myvalue = myvalue;
    }
}

通过此设置,以下测试成功运行

import com.example.demo.gq.MyProperties;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import static org.assertj.core.api.Assertions.assertThat;

@RunWith(SpringRunner.class)
@SpringBootTest
public class MyPropertiesTests {

    @Autowired
    MyProperties myProperties;

    @Test
    public void myProps() {
        assertThat(myProperties.getOrder()).isEqualTo(1);
        assertThat(myProperties.isEnableAll()).isTrue();
        assertThat(myProperties.getMyvalue()).isEqualTo("ABC");
    }

}