Spring MVC - 从web.xml注入context-param

时间:2015-11-05 10:12:52

标签: java spring-mvc web.xml spring-annotations

我在web.xml中定义了上下文参数

<context-param>
        <param-name>apikey</param-name>
        <param-value>45370652</param-value>
    </context-param>
    <context-param>
        <param-name>secretkey</param-name>
        <param-value>3eada72ef0ae12e15b138ae098c268c087f08ca8</param-value>
    </context-param>
</web-app>

我在bean类的类和字段级别启用了@Component@Value注释。但是,它似乎没有阅读它们。它始终为空

@Component 公共类TokBoxSettings {

@Value("${apikey}")
private  String apikey; 

@Value("${secretkey}")
private  String secretkey; 

我还将以下bean映射添加到spring-servlet.xml以配置PropertyPlaceholder

<bean class="org.springframework.web.context.support.ServletContextPropertyPlaceholderConfigurer">
</bean>

请让我知道我错过了什么

2 个答案:

答案 0 :(得分:1)

我是初级春天+ hibernate开发者,我有一个替代方案来解决这个问题,可能你知道吗

我使用bean名称及其属性来设置直接上下文参数值

<bean ...>
   <property name="apikey" value="${apikey}" />
</bean>

答案 1 :(得分:1)

在bean声明中将属性ignoreUnresolvablePlaceholders设置为true。即在spring-servlet.xml

中添加以下标签
<bean class="org.springframework.web.context.support.ServletContextPropertyPlaceholderConfigurer">
    <property name="ignoreUnresolvablePlaceholders" value="true"/>
</bean>

它为我工作。