spring boot动态获取配置文件中的数据

本文详细介绍了如何在Java环境中定义、读取并使用配置文件中的数据。通过具体示例,展示了如何利用@ConfigurationProperties注解来绑定配置文件中的属性到Java类,并通过@Autowired注解注入这些配置,最终实现对配置项的灵活使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.定义配置文件中数据的格式

christmas:
    live-activity:
        send-msg-for-tree-start-1: "Dear broadcaster, congra
        send-msg-for-tree-start-2: "Dear broadcaster, congra
        send-msg-for-tree-start-3: "Dear broadcaster, congra
        send-msg-for-tree-fans-1: "Dear Facecast member, congratulations 
        send-msg-for-tree-fans-2: "Dear Facecast member, congratulations 
        send-msg-for-tree-fans-3: "Dear Facecast member, congratulations 
        send-msg-for-hat-start-1: "Dear broadcaster, congratu
        send-msg-for-hat-start-2: "Dear broadcaster, congratu
        send-msg-for-hat-start-3: "Dear broadcaster, congratu
        send-msg-for-hat-fans-1: "Dear Facecast member, cong
        send-msg-for-hat-fans-2: "Dear Facecast member, cong
        send-msg-for-hat-fans-3: "Dear Facecast member, cong



 

2.读取配置文件中的数据(通过 'christmas')


/**
 * @Description 获取配置文件中的数据
 * @Author qkb
 * @Date 17:24
 **/
@Configuration
@ConfigurationProperties(prefix = "christmas") // 配置文件中定义的格式 对应christmas
public class ChristmasAssistantMsgTemplateConfig {

    private Map<String, String> liveActivity; //配置文件中定义的格式 对应live-activity

    public Map<String, String> getLiveActivity() {
        return liveActivity;
    }

    public void setLiveActivity(Map<String, String> liveActivity) {
        this.liveActivity = liveActivity;
    }

    @Override
    public String toString() {
        final StringBuilder sb = new StringBuilder("ChristmasAssistantMsgTemplateConfig{");
        sb.append("liveActivity=").append(liveActivity);
        sb.append('}');
        return sb.toString();
    }
}

 

3.使用

 @Autowired
 private ChristmasAssistantMsgTemplateConfig christmasAssistantMsgTemplateConfig;

 //  配置文件中设定的四种固定格式
 private static final String treeStartMsgKeyPrefix = "send-msg-for-tree-start-";

 private static final String treeFansMsgKeyPrefix = "send-msg-for-tree-fans-";

 private static final String hatStartMsgKeyPrefix = "send-msg-for-hat-start-";

 private static final String hatFansMsgKeyPrefix = "send-msg-for-hat-fans-";

    
/**
 * 1.通过getLiveActivity方法得到 live-activity Map liveActivity
 * 2.通过liveActivity map得到不同的 相对应的数据
 */
 @PostConstruct
    private void init() {
        logger.info("config = {}", christmasAssistantMsgTemplateConfig);
        Map<String, String> liveActivity = christmasAssistantMsgTemplateConfig.getLiveActivity();
        String s = liveActivity.get(treeStartMsgKeyPrefix  + 1);
        String s1 = liveActivity.get(treeFansMsgKeyPrefix + 2);
        String s2 = liveActivity.get(hatStartMsgKeyPrefix + 1);
        String s3 = liveActivity.get(hatFansMsgKeyPrefix + 2);
        logger.info("直播圣诞树明星榜第一名是={}", s);
        logger.info("直播圣诞树粉丝榜二名是={}", s1);
        logger.info("直播圣诞帽明星榜第一名是={}", s2);
        logger.info("直播圣诞帽粉丝榜二名是={}", s3);
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值