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

   SpringBoot读取配置的几种方式_第1张图片

   @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

   SpringBoot读取配置的几种方式_第2张图片

   @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

   SpringBoot读取配置的几种方式_第3张图片

   注意!  

   @PropertySource不支持yml文件读取。

     

你可能感兴趣的:(springboot)