无法在多模块项目中加载配置属性

时间:2016-10-17 04:36:27

标签: java spring

我正在尝试构建一个多模块项目,每个模块都会通过执行PropertyPlaceholderConfigure属性来加载,然后我发现当我开始运行时没有注入属性。相反,它仍然使用默认属性,例如,我将主类中的输入表达式配置为Value("${esb.mas.path:/home/mas}") ,并在相应的模块属性文件中定义esb.mas.path=/home/vfs/mas,但修改后的值从未使用过。

通过调试和跟踪代码,我发现了问题,但我仍然不确定这是否是Spring框架中的错误,在以下几行中,

public String org.springframework.beans.factory.support.AbstractBeanFactory.resolveEmbeddedValue(String value) {
        String result = value;
        for (StringValueResolver resolver : this.embeddedValueResolvers) {
            if (result == null) {
                return null;
            }
            result = resolver.resolveStringValue(result);
        }
        return result;
    }

我注意到,如果无法捕获embeddedValueResolvers列表的第一个位置的值,则在继续解析embeddedValueResolvers时,它们将使用默认的/ home / mas,方法的参数为{{ 1}}是返回的默认值,即/ home / mas,未使用resolveStringValue的实际值。

esb.mas.path

0 个答案:

没有答案