Spring 4.2.8: пользовательский PropertyPlaceholderConfigurer не работает

После миграции среды Spring на 4.2.8 (начиная с версии 4.1.6) я не могу загрузить конфигурацию через собственный PropertyPlaceholder.

<bean id="customPlaceHolderConfigurer" class="xxx.CustomPlaceHolderConfigurer">
    <property name="order" value="#{T(org.springframework.core.Ordered).HIGHEST_PRECEDENCE + 10}" />
    <property name="ignoreUnresolvablePlaceholders" value="true" />
</bean>

<jaxws:client id="wsBusinessService" address="${pf:WS_URL}/soap/ws" serviceClass="xxx.WSBusinessService" />

И CustomPlaceholder

public class CustomPlaceHolderConfigurer extends PropertyPlaceholderConfigurer {

    private static final Logger LOGGER = LoggerFactory.getLogger(CustomPlaceHolderConfigurer.class);

    @Override
    protected String resolvePlaceholder(final String pPlaceholder, final Properties pProps) {
        String value = null;
        if (pPlaceholder != null) {
            if (CIStringUtils.startsWith(pPlaceholder, "pf")) {
                String propertyKey = StringUtils.substring(pPlaceholder, 3);
                if (propertyKey.contains(":")) {
                    String defaultValue = StringUtils.substringAfter(propertyKey, ":");
                    String newKey = StringUtils.substringBefore(propertyKey, ":");
                    value = Plateforme.getProperty(newKey, defaultValue);
                } else {
                    value = Plateforme.getProperty(propertyKey);
                }
            }
        }
        LOGGER.debug("placeholder '{}' resolved to '{}'", pPlaceholder, value);
        return value;
    }

}

Когда я запускаю приложение, я получаю следующий журнал:

2016-12-13T15:52:12,448 [localhost-startStop-2] DEBUG CustomPlaceHolderConfigurer - placeholder 'pf:WS_URL' resolved to 'services.com'

но исключение было сгенерировано jaxws, потому что свойство не было заменено: "Не удалось найти инициатора канала для адреса: ${pf:WS_URL}/soap/ws и транспорта: http://schemas.xmlsoap.org/soap/http "

Я понял, что порядок загрузки конфигурации был изменен на пружину 4.2.x, но я не смог работать, даже изменив порядок. ( https://github.com/spring-projects/spring-framework/wiki/Migrating-to-Spring-Framework-4.x)

Spring Framework 4.2 поставляется с существенной тонкой настройкой обработки класса конфигурации. Там могут быть тонкие различия в порядке регистрации по сравнению с 4.1; однако, они считаются исправлениями поведения, которые не были четко определены ранее. Если вы полагаетесь на определенный порядок, например, для переопределения bean-компонентов по имени, рассмотрите возможность использования новых возможностей 4.2, в частности аннотаций @Order для классов конфигурации.

Я старался:

#{T(org.springframework.core.Ordered).HIGHEST_PRECEDENCE + 10} #{T(org.springframework.core.Ordered).HIGHEST_PRECEDENCE} -1 1

Кто-нибудь сталкивался с этой проблемой?

Спасибо

0 ответов

Другие вопросы по тегам