SpringBoot读取配置的几种方式

  Spring Boot使用了一个全局的配置文件application.properties或者application.yml,放在src/main/resources目录下或者类路径的/config下。Sping Boot的全局配置文件的作用是对一些默认配置的配置值进行修改

  新建一个springboot的项目,在application.properties中添加

demo.name=zhangsan

demo.mobile=0123456789

  @Value

   直接在要使用的地方通过注解@Value(value=”${config.name}”)就可以绑定到你想要的属性上面

 例如:创建 DemoController,添加如下内容

@RestController
public class DemoController {

    @Value("${demo.name}")
    private String name;


    @Value("${demo.mobile}")
    private String mobile;

    @RequestMapping(value = "config1")
    public String config1(){
        return name+"/"+mobile;
    }
}

  启动项目,访问 http://localhost:8080/config1

   

   @ConfigurationProperties

    有时候属性太多了,一个个绑定到属性字段上太累,官方提倡绑定一个对象的bean,这里我们建一个ConfigBean.java类,使用注解@ConfigurationProperties(prefix = “demo”)来指明

@Component
@ConfigurationProperties(prefix = "demo")
public class ConfigBean {

    private String name;

    private String mobile;

    public String getName() {
        return name;
    }

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

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }
}

   修改DemoController,添加

@Autowired
    ConfigBean configBean;

    @RequestMapping(value = "config2")
    public String config2(){
        return configBean.getName()+"/"+configBean.getMobile();
    }

   启动项目访问 http://localhost:8080/config2

   

   @PropertySource 

   自定义配置文件位置,在resource下创建config文件夹,在config文件夹下床架demo.properties 并添加如下内容

cionfig.demo.name=cionfig.zhangsan

cionfig.demo.mobile=cionfig.0123456789

    创建ConfigDemoBean类   

@Component
@PropertySource("config/demo.properties")
@ConfigurationProperties(prefix = "cionfig.demo")
public class ConfigDemoBean {

    private String name;

    private String mobile;

    public String getName() {
        return name;
    }

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

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }
}

   修改DemoController   

@Autowired
    ConfigDemoBean configDemoBean;

    @RequestMapping(value = "configDemoBean")
    public String configDemo(){
        return configDemoBean.getName()+"/"+configDemoBean.getMobile();
    }

  启动项目访问: http://localhost:8080/configDemoBean

   

   注意!  

   @PropertySource不支持yml文件读取。

     

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值