Spring启动时指定properties文件B 依赖于properties文件A的配置项x (Spring multiple properties files picking one by config item in parent properties file)
问题描述
在一个多环境的项目中,代码里可能会存在N多properties配置文件,但是在运行时仅希望其中一份生效;举个例子,test环境还细分项目test环境:aws-test, azure-test,common-test。运行时为了减少配置项,仅会指定根配置文件root.properties,希望在根配置文件内指定具体项目的env_xxx_biz.properites。
如何解决
<util:properties id="rootConf" location="file:${root_conf:conf/root.properties}" /> <util:properties id="bizConf" location="#{rootConf.getProperty('biz.config.location')?:'/WEB-INF/biz-${spring.profiles.active}.properties'}"/>
如上示例代码,rootConf 是spring applicationContext.xml里配置的 root properties 文件,其内容可能会有一个key为biz.config.location的配置项,如存在以该key指向的properties文件为具体的bizConf文件,如没有该配置项,会以默认的biz properties 文件进行实例化。bizConf的配置使用语法为spring spel表达式。
以上。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)