刘大猫. 2022-07-20 09:03 采纳率: 40%
浏览 119
已结题

spring配置spring.profiles.active=dev 加载配置信息,使用@PropertySource加载prod内容发现加载不了

spring配置spring.profiles.active=dev 加载配置信息,而我想使用@PropertySource(value = {"classpath:application-prod.properties"})加载prod的内容发现加载的数据仍然是dev环境的配置信息,是加载不了吗?网上找不到博客

img

ReadProperties4

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;

/**
 * @Author 211145187
 * @Date 2022/7/20 15:51
 **/
@ConfigurationProperties(prefix = "logging.level")//这个注解是用找到类    注意:@ConfigurationProperties无法加载自定义配置问价内容,必须和@PropertySource配合使用才能获取
@Component  //生效的两种方式:方式1:配置@Component,方式2:启动类添加@EnableConfigurationProperties(ReadProperties.class)
@PropertySource(value = {"classpath:application-prod.properties"})
@Data
public class ReadProperties4 {
    private String root;
}

application.properties

server.port=8080
spring.profiles.active=dev 

application-dev.properties

logging.level.root = info

application-prod.properties

logging.level.root = warn

最后打印readProperties4结果:仍显示dev环境的info,而不是显示prod环境的warn

  • 写回答

5条回答 默认 最新

  • 编号灬9527 2022-07-20 11:34
    关注

    img


    img


    先后顺序罢了,前面配置文件取到数据,就直接返回了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    编号灬9527 回复 刘大猫. 2022-07-20 13:46

    哪没有加载,你没看到吗?文件被丢到最后的位置,取数的时候,从第一个开始取,如果你的配置前面已经有数据了,直接就给你返回了!检验它是不是被加载了,你可以用不同的key,如果那个key有数据,那就证明被加载了

    回复
    刘大猫. 回复 编号灬9527 2022-07-21 00:30

    奥 这个我需要验证下,意思就是因为我查询的key相同所以值直接覆盖了?我应该测试下dev放一个k v,prod放另一个k v然后在测试没有覆盖的情况下能否读取成功

    回复
    展开全部6条评论
查看更多回答(4条)
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 7月28日
  • 已采纳回答 7月21日
  • 创建了问题 7月20日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部