SpringBoot实现配置文件的替换

SpringBoot配置文件的替换

使用spring.profiles.active

在工作中,测试或上线的时候一定会遇到的问题就是修改配置。一般来说都有如下几种配置可用:dev(开发环境),test(测试环境),pro(生产|线上环境)。这时候,我们就需要去注释掉配置文件中的所有配置,再解开需要的配置。这时候,就可以通过spring.profiles.active的配置来解决这个问题。

application.properties

根据不同的环境创建不同的properties文件,如application-dev.properties,application-test.properties,application-pro.properties。

创建application.properties,内容如下:

spring.profiles.active=dev # test测试、pro生产

然后通过修改application.properties来更改不同的配置。

application.yml

同上,根据不同的环境创建不同的yml配置文件,以后缀区分(如:application-dev.yml)。

创建application.yml,内容如下:

spring:
    profiles:
        active: test # dev开发、pro生产

同上,修改配置文件只需要更改application.yml文件即可。

SpringBoot读取配置文件汇总

1、使用注解@ConfigurationProperties映射

通过注解@ConfigurationProperties(prefix=“配置文件中的key的前缀”)可以将配置文件中的配置自动与实体进行映射application.properties配置。

2、使用注解Value("${key}")映射

可以通过@Value注解将配置文件中的值映射到一个Spring管理的Bean的字段上。

3、使用注解@PropertySource("classpath:xxx.properties")

加载自定义属性文件的注解

专门用来加载指定位置的properties文件,需与@ConfigurationProperties(prefix ="" )配合使用,Spring暂未提供加载指定位置yml文件的注解。

4、使用 Environment

这个环境配置类,不光能读取配置文件,还能读取系统变量,比如jdk版本,当前操作系统类型,用户目录等等。

5、使用@ImportResource注解

使用将外部的配置文件加载到程序中来,比如我们定义一个beans.xml文件,里面配置了一个bean,默认情况下这个bean是不会加载到Spring容器中来的。我们需要@ImportResource(locations = {"classpath:beans.xml"})注解将这个配置文件加载进来。SpringBoot推荐使用配置类的方式给容器中添加组件。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

你可能感兴趣的:(SpringBoot实现配置文件的替换)