2013-01-29 4 views
1

Мне нужно экпортировать пару ссылок в моем приложении. Ссылки должны быть в файле свойств, который может быть изменен без необходимости сборки и развертывания. Я попытался добавить значения в server.properties моего jboss и использовать эту переменную в моем контроллере, но я не могу получить значение.Как экстернализировать ссылки в работе весенних кадров

Как это сделать?

+0

[** Покажите нам, что вы пробовали **?] (HTTP://mattgemmell.com/2008/12/08/what-have-you-tried) – Luv

ответ

1

Использование ResourceBundle

ResourceBundle bundle = ResourceBundle.getBundle("<myfile>"); 
String studentName = bundle.getString("<property-name>"); 
1

Если поместить значения в server.properties, а затем настроить PropertyPlaceholderConfigurer в вашем ApplicationContext, что-то вроде этого:

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
    <property name="location"> 
    <value>classpath:server.properties</value> 
    </property> 
</bean> 

или короче Spring 3 версия:

<context:property-placeholder location="classpath:server.properties"/> 

, а затем просто вводить значения, необходимые для ваших бобов с

<bean id="someBean"> 
    <property name="myProperty" value="${this.is.property.from.server.properties}" /> 
</bean> 

или @Value аннотацию, как

@Value("${this.is.property.from.server.properties}") 
private String myProperty; 
+1

Я считаю, что правильным синтаксисом будет '@Value (" $ {some.property} ")' (обратите внимание на знак доллара). Я также предложил бы использовать пространство имен 'context', так как« PropertyPlaceholderConfigurer »устарел со времен Spring 3.1:' ' – ach

+0

Скорректированный ответ. – vertti

+0

Чтобы уточнить, 'property-placeholder' относится не только к Spring 3 (работает, по крайней мере, еще до Spring 2.5), но с его использованием убедитесь, что в капоте используется правильный' Configurer': 'PropertyPlaceholderConfigurer' для 3.0- или 'PropertySourcesPlaceholderConfigurer' для 3.1+. – ach

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