Ответ 1
Это тоже должно работать:
@Value("${url.webservice}")
private String wsEndpoint;
Во-первых: я использую Spring 3.0
У меня возникла проблема при настройке моего класса контроллера. Контроллер использует веб-службу, которую я хочу определить для адреса конечной точки, используя файл .properties.
@Controller
public class SupportController {
@Value("#{url.webservice}")
private String wsEndpoint;
...
В моем xml файле контекста приложения я определил это:
<context:property-placeholder location="/WEB-INF/*.properties" />
Я читал документацию, пытаясь использовать разные подходы (например, добавить префикс systemProperties.), но я продолжаю получать сообщение об ошибке, сообщающее мне, что его не существует.
Поле или свойство 'url' не может быть найденный на объекте типа 'org.springframework.beans.factory.config.BeanExpressionContext'
Ok. Я понял это.
Теперь в контроллере:
@Value("#{settings['url.webservice']")
Тогда в конфигурации контекста у меня есть этот "помощник bean":
<util:properties id="settings"
location="/WEB-INF/supportweb.properties"></util:properties>
Это тоже должно работать:
@Value("${url.webservice}")
private String wsEndpoint;
вы должны проверить, что
<context:property-placeholder location="/WEB-INF/*.properties" />
определяется в webmvc-config.xml, где вы создаете экземпляры @Controllers
У меня есть эта конфигурация, и она отлично работает:
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:application.properties</value>
</list>
</property>
</bean>
и я таким образом реализую свойство
@Value("${root.log.level}")
private String prop;
поле правильно инициализируется значением "DEBUG".