SpringBoot动态加载配置文件和@PropertySource

配置文件列表:

目的:

根据环境动态读取配置,例如开发环境dev,会读取application.yml、application-dev.yml、interface-dev.properties

配置:

方式一:

application.yml

spring:

  profiles:

    active: @profileActive@

pom.xml

<profiles>
    <profile>
        <id>dev</id>
        <properties>
            <profileActive>dev</profileActive>
        </properties>
    </profile>
    <profile>
        <id>test</id>
        <properties>
            <profileActive>test</profileActive>
        </properties>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
    </profile>
    <profile>
        <id>prod</id>
        <properties>
            <profileActive>prod</profileActive>
        </properties>
    </profile>
    <profile>
        <id>pre</id>
        <properties>
            <profileActive>pre</profileActive>
        </properties>
    </profile>
</profiles>

idea maven插件快速切换环境也可以启动命令参数切换环境

方式二:

application.yml

spring:

  profiles:

    active: dev,test,pre,prod

不需要配置pom.xml,启动命令参数切换环境

读取配置内容:

1.读取application 前缀的配置文件:

        application-dev.yml

dynamicParams:

  name: test

方式一:

        单个参数读取

@Value("${dynamicParams,name}")

private String name;

方式二:

        读取成对象参数

@Configuration

@ConfigurationProperties(prefix = "dynamicParams")

@Data

public class DynamicParams {

    private String name;

}

需要的地方注入

@Autowired

private DynamicParams dynamicParams;

2.读取interface 前缀的配置文件:

interface-dev.properties

dynamicParams.name=test

方式一:

单个参数读取

@PropertySource(value = "classpath:interface-${spring.profiles.active}.properties")

public class Test  {

   @Value("${dynamicParams.name}")

   private String name;

}

方式二

读取成对象参数

@PropertySource(value = "classpath: interface-${spring.profiles.active}.properties")

@Configuration

@ConfigurationProperties(prefix = "pojo")

@Data

public class DynamicParams {

   private String name;

}

需要的地方注入

@Autowired

private DynamicParams dynamicParams;

另外:@PropertySource如需读取yml配置文件需要另外实现PropertySourceFactory 工厂类

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沙糖橘

您的鼓励将是我创作的最大动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值