Бернхоф уже дал вам способ избежать жалоб компилятора. Однако следует также помнить, что трассировка стека будет отключена (а некоторые библиотеки логгеров не будут обрабатывать методы util-classed-i-throw-exceptions-for-your-app), что затрудняет отладку приложения.
Используйте элемент 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.
Просто добавьте следующее определение 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>
Единственный способ, который я вижу здесь, - это реализовать интерфейс « 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 ) );
}