2013-12-22 4 views
2

Сейчас я чтение свойства файла весной, какЧитать все файлы свойств в каталоге

<bean id="messageSource" 
    class="org.springframework.context.support.ResourceBundleMessageSource"> 
    <property name="basename" value="customer/messages" /> 
</bean> 

Здесь я уточняя, что прочитать messages.properties в директории клиента. Но я хочу указать каталог и попросить Spring прочитать все файлы свойств, присутствующие в этом каталоге. Как я могу это достичь?

Я попробовал значение = "клиент/*", но он не работает.

ответ

4

Использование <context:property-placeholder> более рекомендуется как:

<context:property-placeholder 
    locations="classpath:path/to/customer/*.properties" /> 

Вы также можете сделать это с помощью Spring 3.1+ Java Config с:

@Bean 
public static PropertyPlaceholderConfigurer properties(){ 
    PropertyPlaceholderConfigurer ppc = new PropertyPlaceholderConfigurer(); 
    Resource[] resources = new ClassPathResource[ ] 
    { new ClassPathResource("path/to/customer/*.properties") }; 
    ppc.setLocations(resources); 
    ppc.setIgnoreUnresolvablePlaceholders(true); 
    return ppc; 
} 

Вам может понадобиться адаптировать тип ресурса для загрузки свойств от:

Чтобы использовать свойство можно использовать Environment абстракции. Он может быть введен и использован для извлечения значений свойств во время выполнения.

+0

Спасибо за ответ ... но проблема с этим решением является то, что я должен написать вспомогательный класс для чтения свойств. Итак, как я могу получить значение для свойства во время выполнения? –

+0

using ResourceBundleMessageSource, я смог ввести объект messageSource, который может помочь мне в получении значений для всех свойств ... –

+0

В последней ссылке есть раздел, в котором показано, как использовать такие загруженные свойства. Кроме того, обратите внимание, что аннотация '@ Bean' - это подход Java Config, альтернативный конфигурации XML, и это ** не ** класс утилиты. – nobeh

Смежные вопросы