跳到主要内容

从Springboot的Yml、properties配置文件中取值

·447 字·1 分钟

从SpringBoot的yml/properties配置文件中取值

开发过程中,一些不容易变动的常量最好统一存放在同一位置,改动时只改动一个文件就可以。一般采用两种方式:

1.定义常量类:

public class TestConstant {
	public static final String TEST = "THIS IS A TEST";
}
//使用:直接 类名.常量名 即可
TestConstant.TEST

2.定义在SpringBoot的配置文件中

SpringBoot的配置文件:application.yml/application-dev.properties,yml的优先级高于properties。

比如在application.yml中定义变量:

# 注意:paramId:前面必须空两个格,paramId:与123456之间必须空一个格,否则格式错误
test:
  paramId: 123456

取值:

@Value("${test.paramId}")

两种方式:

  • 1.直接以注入的形式使用:

  • 2.封装成一个配置类,然后注入,使用get方法获取

    @RestController
    @RequestMapping("/test")
    public class TestController {
    
        //方法2
        @Autowired
        private TestConfig testConfig;
    
        //方法1
        @Value("${test.paramId}")
        private String paramId;
    
        @ApiOperation(value = "测试yml")
        @PostMapping(value = "/testYml",produces = MediaType.APPLICATION_JSON_VALUE)
        public String destroyGroup(){
            String id_from_config = testConfig.getParamId();
            String id_from_this = paramId;
            System.out.println("id_from_config:"+id_from_config);
            System.out.println("id_from_this:"+id_from_this);
            return "sucess";
        }
    }
    
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.stereotype.Component;
    
    @Component
    public class TestConfig {
        @Value("${test.paramId}")
        private String paramId;
    
        public String getParamId() {
            return paramId;
        }
    
        public void setParamId(String paramId) {
            this.paramId = paramId;
        }
    }
    

    输出:

    id_from_config:123456
    id_from_this:123456