SpringBoot实现配置文件的替换
目录
- SpringBoot配置文件的替换
- 使用spring.profiles.active
- application.properties
- application.yml
- SpringBoot读取配置文件汇总
- 1、使用注解@ConfigurationProperties映射
- 2、使用注解Value("${key}")映射
- 3、使用注解@PropertySource("classpath:xxx.properties")
- 4、使用 Environment
- 5、使用@ImportResource注解
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推荐使用配置类的方式给容器中添加组件。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。