java unset_java – 将应用程序属性覆盖为undefined / unset

我不确定这是否是一个有效的问题,但我想知道这是否可行.

Spring启动项目有一个application.properties和几个配置文件特定的属性.特定于配置文件的属性会覆盖已定义的application.properties以及application-profile.properties中已定义的任何属性,并且还会添加属于特定于配置文件的属性的属性.下图:

application.properties

key1=value1

key2=value2

application-profile.properties

key1=valueProfile1

key3=valueProfile3

当应用程序以此配置文件启动时,它看到的最终属性如下:

key1=valueProfile1

key2=value2

key3=valueProfile3

简而言之,您具有公共属性和配置文件属性的并集,其中配置文件属性值附加并覆盖公共属性.

但是,如果在上帝知道的情况下,我需要在公共application.properties中定义属性,但是当应用程序在一个特定的配置文件中启动时,我需要它“未定义”.下图:

application.properties

keySpecial=specialValue

key1=value1

key2=value2

application-special.properties

key1=valueSpecial1

//unset or undefine keySpecial

keyAlternateSpecial=specialAlternateValue

key3=valueSpecial3

现在,当应用程序以这个“特殊”配置文件启动时,我希望它能够看到最终属性,如下所示:

keyAlternateSpecial=specialAlternateValue

key1=valueSpecial1

key2=value2

key3=valueSpecial3

请注意,当应用程序在此特殊配置文件中运行时,未定义keySpecial,甚至不存在.

这可能吗?

注意:我知道我可以避免在公共application.properties中定义“keySpecial”,并在所有其他特定于配置文件的属性中定义它们.并仅在“特殊”配置文件属性中指定“keyAlternateSpecial”.

更多信息:

令我对此感到疑惑的场景是spring boot datasource jndi属性. From the docs

spring.datasource.jndi-name= # JNDI location of the datasource. Class, url, username & password are ignored when set.

仅仅存在此属性会使应用程序忽略其他数据源属性(类,URL,用户名,密码),即使它们已设置.

我不允许从“application.properties”中删除jndi属性.但我想取消设置/取消定义它并在“特殊”配置文件属性中添加其他数据源属性(类,URL,用户名,密码).

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值