spring boot自定义yml配置文件及其外部部署

立什么flag,都是要倒的(摔!
果然就是过个年,开年来项目一来,二月份的博客就欠下了,三月即将结束,惴惴不安,厚着脸皮写个最近用到的,之前没找到很好的资料(大概是搜商颇低导致的)来说这一块的东西:spring自定义配置文件的部署。

1、序

背景:有个小项目需要后台,俺顶着Java菜逼的头衔接下来了,被男票疯狂安利spring boot,于是(被逼无奈)开始了边学边开发的躺坑之路……真香,资料超多,超好用!!!
电厂的项目,用了公司自己开发的实时数据库,后台这边就涉及到很多测点的信息需要存储到配置文件(为什么不是关系数据库真的不要问我),并且希望在部署的时候方便修改,考虑到内容颇多,放在application-pro.yml中实在不合适,就加了个point.yml。倒不是因为现场测点信息会变才需要更改,更多的是突然一拍脑袋,发现手抖写错了?

首先,因为一不小心变成了xxx.yml玩家,好好用哦,没能回去xxx.properties,传说中官方不支持像加载xxx.properties配置文件那样使用注解@PropertySource("classpath:xxx.properties")的方式加载yml配置文件,这里要说的就是加载自定义yml文件的方法。
官方说明:
https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-external-config-yaml-shortcomings
加载自定义xxx.properties文件的方法参考这位大佬的文章哦:
springBoot基础系列–properties配置

注意:之前在找多数据源配置的资料时,就因为资料对应的spring boot版本差异搞得很郁闷,请务必注意俺用的版本是:

spring boot 2.13

2、加载自定义yml文件

spring boot的资料非常多,多到非常容易不用动脑就解决了问题呢~项目做完之后冷静下来,觉得还是应该验证一下,毕竟打脸是为了以后有头有脸。

2.1、使用@PropertiesSource注解读取yml配置文件-简单版

按照上面给出的官宣,这条路是不行的。因为没看到文档对应的版本号,还是试一下:

# 配置文件 point.yml
id: 2233
name: Ellie

(呃,这种信息为啥要叫point啊啊啊!

// 配置对应的config类
@Data
@Configuration
@PropertySource(value = {"classpath:point.yml"})
@ConfigurationProperties()
public class TestPoint {
    private int id;
    private String name;

    @Override
    public String toString() {
        return "TestPoint{" +
                "id=" + id +
                ", name='" + name + '\'' +
                '}';
    }
}

随手糊了个controller来测试

@RestController
public class TestConfigController {
    @Resource
    TestPoint testPoint;

    @ApiOperation("测试 配置文件")
    @RequestMapping(value = "/config")
    public ResultBean<String> testConfig() {
        return ResultBeanUtil.makeOkResp(testPoint.toString());
    }
}

postman搞起来
在这里插入图片描述
都挺好!
所以如果只是要读取这样简单的信息的话&#x

  • 8
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值