2014-02-04 5 views
2

Мне нужно установить глобальное свойство грамматически. Функционально он должен делать то, что следующее утверждение следует делатьНастройка глобального свойства через код Java

<global-property name="host-name" value="localhost" doc:name="Global Property"/> 

Я считаю, что я должен быть в состоянии получить доступ к этой недвижимости, используя $ {имя-хоста}. В этом конкретном сценарии я не хочу загружать свойство из файла свойств.

ответ

2

Если вы хотите разрешить заполнители, как $ {имя хоста-} вы можете расширить класс Spring PropertyPlaceholderConfigurer с пользовательской реализации метода resolvePlaceholder, и добавить его в качестве Spring бина, как это:

<spring:beans> 
    <spring:bean id="myConfigurer" class="my.test.MyConfigurer"/> 
</spring:beans> 

Затем вызывается пользовательский resolPlaceholder для разрешения любых неразрешенных свойств.

Также довольно просто установить фактически установленные свойства в реестре контекста Mule, получив контекст из сообщения (message.getMuleContext()) или путем реализации компонента MuleContextAware, но в тех случаях свойство еще не будет доступно в то время когда заполнители собственности будут разрешены.

Вы бы установить свойство как это:

context.getRegistry().registerObject("myKey", "myVal") 

и доступ к нему позже, как это:

context.getRegistry().get("myKey")