Свойства Spring (заполнитель свойства) автопроводное соединение

Я имею в своем applicationContext.xml

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


<bean id="clientPreferencesManager" class="pl.bildpresse.bildchat2.business.ClientPreferencesManager" >
    <property name="clientApiUrl" value="${clientapi.url}" />     
</bean>

Действительно ли возможно сделать то же по автопроводу? Что-то как:

@Autowired
@Qualifier("${clientapi.url}")
public void setClientApiUrl(String clientApiUrl) {
    this.clientApiUrl = clientApiUrl;
}
40
задан Visruth 16 November 2012 в 09:01
поделиться

4 ответа

Вы можете использовать @Value :

@Value("${clientapi.url}") 
public void setClientApiUrl(String clientApiUrl) { 
    this.clientApiUrl = clientApiUrl; 
}
78
ответ дан 27 November 2019 в 01:22
поделиться

Для Spring 3.0 правильный путь показан на рисунке - с помощью @Value (" $ {expression} ")

Для Spring до 3.0 вы можете попробовать:

@Autowired
private StringValueResolver resolver;

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

2
ответ дан 27 November 2019 в 01:22
поделиться

Мое решение - использовать

<context:property-override location="classpath:clientapi.properties" />

, а затем в файле clientapi.properties

clientPreferencesManager.clientApiUrl=http://localhost:8084/ClientAPI/resources/

Этот тоже хорош

1
ответ дан 27 November 2019 в 01:22
поделиться

Хорошо. Только что понял. Вам нужно добавить @Autowired Примерно так:

@Autowired
@Value("${clientapi.url}") 
private StringValueResolver resolver;

Я использую spring 3.0.0.RELEASE

Ура

5
ответ дан 27 November 2019 в 01:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: