Я работаю над проектом с несколькими отдельными модулями, каждый из которых имеет свои собственные файлы свойств контекста приложения.Я хочу иметь возможность загрузить все эти свойства, чтобы они могли использоваться Spring для разрешения заполнителей.
В предыдущих вопросах упоминалось об этом, и здесь есть хороший пост здесь , в котором описано, какиспользовать PropertyPlaceholderConfigurer в каждом контексте, упорядочить их по приоритету и установить для ignoreUnresolveablePlaceholder значение true, чтобы эти файлы свойств могли перекрестно ссылаться друг на друга, не разрушаясь.
Однако это не решает мою проблему, так как я тожехочу иметь возможность использовать свойства, которые я загружаю, для некоторого пользовательского разрешения заполнителя (из некоторых файлов yaml, которые я анализирую).Это требует использования PropertyPlaceholderHelper, который требует в качестве аргумента объект Properties.
Насколько я могу судить, потенциальные решения:
1) Объединить все файлы свойств в один компонент свойств.Затем его можно использовать для создания PropertyPlaceholderConfigurer (для внутреннего разрешения заполнителя Spring) и использовать с PropertyPlaceholderHelper (для моего собственного разрешения заполнителя)
2) Каким-то образом настроить PropertyPlaceholderHelper для использования набора свойств и их иерархической структурыдоговоренности, проводимой PropertyPlaceholderConfigurers, если я пойду дальше и последую совету этого блога.
К сожалению, я не могу понять, как это сделать.Любая помощь будет принята с благодарностью!
PS Похоже, что Spring 3.1 будет здесь очень полезен ... к сожалению, мы еще не готовы перейти к ней, поэтому мне все еще нужно решение, которое поможет мне!
**** РЕДАКТИРОВАТЬ ****
Спасибо за ответы до сих пор.Это хорошие ответы, но, к сожалению, они мне не помогут, потому что (и извиняюсь за то, что не упомянули об этом раньше), мы сейчас находимся в процессе отделения основных модулей нашего проекта от неосновных.Это означает, что основные модули и их контекст приложения не могут жестко закодировать имена файлов свойств.К сожалению, сканирование пути к классам в Spring не работает, поэтому подстановочные знаки типа «classpath *: *. Properties» работают только при сборке отдельных модулей, а не проекта верхнего уровня (я считаю, что это известная проблема).
Тогда возникает вопрос, как объединить файлы свойств, определенные в неосновных модулях, в существующие файлы свойств, определенные в базовых модулях.Сейчас я работаю с BeanPostProcessor - мне просто интересно, есть ли более простой / более элегантный способ сделать это?
Спасибо