Свойство Spring System решено слишком рано - PullRequest
0 голосов
/ 27 августа 2018

Я использую PropertyPlaceholderConfigurer в Spring 3.2.14.RELEASE в веб-приложении.У меня есть сегмент ниже в моем файле PropertyContext.xml.

    <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="properties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.SQLServer2008Dialect</prop>
            <prop key="hibernate.show_sql">false</prop>
        </props>
    </property>
    <property name="locations">
        <list>
            <value>classpath:globalDefinitions.properties</value>
            <value>file:${user.home}/myapplication.properties</value>
        </list>
    </property>
    <property name="ignoreResourceNotFound" value="true"/>
</bean>

Когда я запускаю

mvn clean install -DskipTests=true

, я открываю сгенерированный файл войны и вижу, что значение location для второй строки уже разрешено $ {user.home} моего ноутбука.Я ожидаю, что это произойдет при создании Spring Context.

Мы создаем файл war на сервере сборки, а затем переносим его на компьютеры Test / Prod, чтобы он доставлял нам проблемы, когда у нас другой пользователь $ {user.home} values.

Что я делаю не так? Это ожидаемое поведение или мне мешают какие-то другие maven-плагины (которые мне нужно проверить)?

1 Ответ

0 голосов
/ 29 августа 2018

Проблема в том, что плагин ресурсов Maven обрабатывает файлы в каталоге src / main / recources и оценивает значение $ {user.home} на этапе сборки. (Спасибо @BackSlash)

Поэтому я отключил фильтрацию для PropertyContextв плагине ресурсов Maven, и он начал вести себя как ожидалось.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...