Чтение списка из файла .properties использование заполнителя свойств Spring

Бернхоф уже дал вам способ избежать жалоб компилятора. Однако следует также помнить, что трассировка стека будет отключена (а некоторые библиотеки логгеров не будут обрабатывать методы util-classed-i-throw-exceptions-for-your-app), что затрудняет отладку приложения.

13
задан Tuan 3 April 2014 в 02:29
поделиться

3 ответа

Используйте элемент util: properties , чтобы загрузить свои свойства. Вы можете использовать PropertyPlaceholderConfigurer, чтобы указать путь к вашему файлу:

<bean name="XXX" class="XX.YY.Z">
  <property name="urlList">
    <util:properties location="${path.to.properties.file}"/>
  </property>
</bean>

Обновление Я неправильно понял вопрос; вы хотите вернуть только свойства, в которых ключ начинается с определенной строки. Самый простой способ добиться этого - сделать это в методе установки вашего bean-компонента. Вам нужно будет передать строку вашему bean-компоненту как отдельное свойство. Расширение вышеуказанного объявления:

<bean name="XXX" class="XX.YY.Z" init-method="init">
  <property name="propertiesHolder">
     <!-- not sure if location has to be customizable here; set it directly if needed -->
    <util:properties location="${path.to.properties.file}"/>
  </property>
  <property name="propertyFilter" value="${property.filter}" />
</bean>

В вашем XX.YY.

12
ответ дан 1 December 2019 в 20:57
поделиться

Просто добавьте следующее определение Bean

<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
    <list>
        <value>classpath:myprops.properties</value>
    </list>
    </property>
</bean>

Чтобы использовать его таким образом, обратите внимание, что порт определен в myprops.properties

<bean id="mybean" class="com.mycompany.Class" init-method="start">
    <property name="portNumber" value="${port}"/>
</bean>
2
ответ дан 1 December 2019 в 20:57
поделиться

Единственный способ, который я вижу здесь, - это реализовать интерфейс « MessageSourceAware », чтобы получить messageResource, а затем вручную заполните свой список.

class MyMessageSourceAwareClass implemets MessageSourceAware{
    public static MessageSource messageSource = null;

    public void setMessageSource(MessageSource _messageSource) {
        messageSource = _messageSource;
    }

    public static String getMessage( String code){
        return messageSource.getMessage(code, null, null );
    }

}

--- Файл свойств ---

prop.list=foo;bar;one more

Заполните свой список следующим образом

String strlist = MyMessageSourceAwareClass.getMessage ( "prop.list" );

if ( StringUtilities.isNotEmptyString ( strlist ) ){
   String[] arrStr = strList.split(";");
   myBean.setList ( Arrays.asList ( arrStr ) );
}
2
ответ дан 1 December 2019 в 20:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: