如何将属性值注入到注释配置的spring mvc 3.0控制器中

时间:2010-01-13 09:39:52

标签: java spring

首先:我使用的是Spring 3.0

配置我的控制器类时遇到问题。控制器使用Web服务,我想使用.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'类型的对象


确定。我已经弄清楚了。

现在,在控制器中:

@Value("#{settings['url.webservice']")

然后在上下文配置中我有这个“帮助bean”:

<util:properties id="settings" 
location="/WEB-INF/supportweb.properties"></util:properties>

3 个答案:

答案 0 :(得分:12)

这也应该有效:

@Value("${url.webservice}") 
private String wsEndpoint;

答案 1 :(得分:3)

我有这个配置,它工作正常:

<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”值。

答案 2 :(得分:2)

你应该检查一下

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

在webmvc-config.xml中定义,您可以在其中创建@Controllers

的实例