• Java

Spring Boot自定义配置与加载

Spring Boot自定义配置与加载

application.properties主要用来配置数据库连接、日志相关配置等。除了这些配置内容之外,还可以自定义一些配置项,如:

my.config.msg=this is a string
my.config.url=com.luangeng.com
my.config.conbim=${my.config.msg}${my.config.url}

# 随机字符串
my.config.value=${random.value}
my.config.number=${random.int}
my.config.bignumber=${random.long}
# 10以内的随机数
my.config.test1=${random.int(10)}
# 10-20的随机数
my.config.test2=${random.int[5,10]}

增加配置类:

/**
 * 自定义属性与加载
 */
@Component
public class MyConfig {


    @Value("${my.config.msg}")
    private String msg;


    @Value("${my.config.url}")
    private String url;

    @Value("${my.config.conbim}")
    private String conbim;


    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public String getConbim() {
        return conbim;
    }

    public void setConbim(String conbim) {
        this.conbim = conbim;
    }

    @Override
    public String toString() {
        return "MyConfig{" +
                "msg='" + msg + '\'' +
                ", url='" + url + '\'' +
                ", conbim='" + conbim + '\'' +
                '}';
    }
}

配置类的使用:

@RestController
public class InfoController {

    @Autowired
    MyConfig myconfig;

    @RequestMapping("/info")
    public String msg() {
        return "client1 service"+myconfig.toString();
    }

}

多环境配置:

开发Spring Boot应用时,通常会部署到几个不同的环境,比如:开发、测试、生产环境。其中每个环境的数据库地址、服务器端口等等配置都会不同,频繁修改配置文件是个非常繁琐且容易发生错误的事。

对于多环境的配置,Spring Boot通过配置多份不同环境的配置文件,再通过打包命令指定需要打包的内容之后进行区分打包。

在Spring Boot中多环境配置文件名需要满足application-{profile}.properties的格式,其中{profile}对应你的环境标识,比如:

application-dev.properties:开发环境 application-test.properties:测试环境 application-prod.properties:生产环境 至于哪个具体的配置文件会被加载,需要在application.properties文件中通过spring.profiles.active属性来设置,其值对应{profile}值。如:

spring.profiles.active=test就会加载application-test.properties配置文件内容


最新