美文网首页
SpringBoot实战系列之读取配置文件的值

SpringBoot实战系列之读取配置文件的值

作者: 程序员小白成长记 | 来源:发表于2020-04-23 14:06 被阅读0次

在Springboot中有的配置是Springboot已经集成了,只需要在application.properties中写规定好的字符串名称,Springboot就可以自动读取;但更多的时候需要自己在配置文件中加入一些属性,需要自己进行读取,下面就说一下如何读取自定义的写在application.properties中的值

springboot读取自定义properties文件

SpringBoot四种读取properties文件的方式

本文一共介绍四种写法

一、第一种写法 @Value("${es.port:9200}") (不推荐,是硬绑定)

1.不需要在applicaton.properties中写配置
2.编写配置类

@Configuration
public class EsConfig {

    @Value("${es.port:9200}")
    private int port;

    public int getPort() {
        return port;
    }

    public void setPort(int port) {
        this.port = port;
    }
  1. 测试一下
@Controller
public class EsController{
    @Autowired
    EsConfig esConfig;

    @ResponseBody
    @RequestMapping(value = "/es", method = RequestMethod.GET)
    public String getEsInfo(){
        return esConfig.getPort());
    }
}

二、第二种写法 @Value("${es.port}")

  1. 在application.properties中加入配置
# 两种写法都可以
es.port=9200
# es.port:9200 
  1. 读取配置文件测试(可以没有get/set方法)
@Controller
public class EsController {

    @Value("${es.port}")
    private int port;

    @ResponseBody
    @RequestMapping(value = "/es", method = RequestMethod.GET)
    public String getEsInfo(){
        return port;
    }

}

三、第三种写法 @Configuration + @Value("${es.port}") (推荐)

  1. 在application.properties中加入配置
# 两种写法都可以
es.port=9200
# es.port:9200 
  1. 配置类
    注意写get/set方法
@Configuration
public class EsConfig {

    @Value("${es.port}")
    private int port;


    public int getPort() {
        return port;
    }

    public void setPort(int port) {
        this.port = port;
    }
}
  1. 测试
@Controller
public class EsController {

    @Autowired
    EsConfig esConfig;

    @ResponseBody
    @RequestMapping(value = "/es", method = RequestMethod.GET)
    public String getEsInfo(){
        return esConfig.getPort());
    }
}

四、第四种写法 @Configuration + @ConfigurationProperties(推荐)

  1. 在application.properties中加入配置
# 两种写法都可以
es.port=9200
# es.port:9200 
  1. 配置类
@Configuration
@ConfigurationProperties(prefix = "es")
public class EsConfig {


    private int port;


    public int getPort() {
        return port;
    }

    public void setPort(int port) {
        this.port = port;
    }
}
  1. 测试
@Controller
public class EsController {

    @Autowired
    EsConfig esConfig;

    @ResponseBody
    @RequestMapping(value = "/es", method = RequestMethod.GET)
    public String getEsInfo(){
        return esConfig.getPort());
    }
}

【注】配置文件中以","分隔,可以自动赋值给数组
eg:
nums=1,2,3

private int[] nums;

相关文章

网友评论

      本文标题:SpringBoot实战系列之读取配置文件的值

      本文链接:https://www.haomeiwen.com/subject/hzuoihtx.html