Spring Boot自定义配置文件并读取(不需要写类和实现接口)

本文介绍了如何在SpringBoot项目中使用spring.profile.include或spring.profile.active方法加载自定义配置文件,避免了使用@PropertySource注解和实现EnvironmentPostProcessor接口的不便。通过在application.yml中指定配置文件,实现了方便快捷地管理项目配置。示例展示了如何配置并读取多个配置文件中的属性。
摘要由CSDN通过智能技术生成

记录贴,由于一个项目中有用到大量的定义好的配置,可能会更改,于是想抽取到配置文件中,搜索良久,总算找到了一个相对满意的方法

前言

实现自定义配置文件的方法有那么几种:

  1. 利用@PropertySource注解来实现

需要写java bean,而且配置文件添加或者修改,也需要改,不方便

  1. 使用EnvironmentPostProcessor加载自定义配置文件

需要实现接口继承类,对于yml支持不好

以上两种方法参考此处


个人觉得,可以采用第三种方法,在application.yml配置,主要用到了spring.profile.include 或 spring.profile.active方法。
优点:很方便,就和直接在application.yml中一样。
缺点:配置名字无法自定义(只能是application-${filename} 但我觉得无伤大雅,本来Spring Boot就是约定大于配置,能自定义一部分名称,相信能满足大部分人的需求了)

首先要理解spring.profile.include 或 spring.profile.active

spring.profile.active:
    根据部署场景不同,切换不同的配置文件:配置spring.profiles.active,属性值为${profile}。
spring.profile.include:
	启用开发环境(主)配置文件时active时,同时启用spring.profiles.include属性配置其他的profile

active 我们常用来指定开发环境如:dev、test、prod等,因此我们只需要生效的配置下,指定include即可。
也就是如果在application-dev.yml下置顶的配置文件只会在dev下生效,重点来了application.yml的文件则会全局生效,所以我们可以采用这个特性,实现我们的诉求。

可惜没有轮子能够实现无论配置文件啥名字都能读取,以后要是有能力可以看看能不能实现下。

🌰例子如下
  1. application.yml 指定文件
    在这里插入图片描述
  2. 配置文件位置及内容
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  3. 读取测试
    @Value("${qq.test}")
    private String test;

    @Value("${home.test}")
    private String home;

    @GetMapping()
    public String loginUser() {
        return test +"------------" + home;
    }

在这里插入图片描述

完美!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值