Spring应用程序上下文:访问web.xml context-params?

Ash*_*iya 15 java spring web.xml

问候 ,

有没有办法从web.xml context-param中获取值到Spring上下文?

例如,我将web.xml中的值定义为:

<context-param>
  <param-name>compass-index</param-name>
  <param-value>file:///home/compass/index</param-value>
</context-param>
Run Code Online (Sandbox Code Playgroud)

我想将该值分配给bean属性:

<bean ...>
<props>
  <prop key="compass.engine.connection">
    ${from web.xml context-param?}
  </prop>
</props>
</bean>
Run Code Online (Sandbox Code Playgroud)

提前致谢?

Boz*_*zho 25

是的 - ServletContextPropertyPlaceholderConfigurer

本文解释了详细信息.简而言之,您需要:

<bean class="org.springframework.web.context.support.ServletContextPropertyPlaceholderConfigurer">
</bean>
Run Code Online (Sandbox Code Playgroud)

然后使用以下属性:

<bean ...>
   <property name="compassIndex" value="${compass-index}" />
</bean>
Run Code Online (Sandbox Code Playgroud)

或者 @Value("${compass-index}")

  • 从Spring 3.1开始,不推荐使用ServletContextPropertyPlaceholderConfigurer(有关详细信息,请参阅javadocs). (5认同)
  • 春季文档中特别"酷"的特性是已经提到了弃用,但没有提供更新的示例代码. (2认同)
  • 这似乎是正确的XML,因为不推荐使用ServletContextPropertyPlaceholderConfigurer:<bean class ="org.springframework.context.support.PropertySourcesPlaceholderConfigurer"> <property name ="environment"> <bean class ="org.springframework.web.context.support. StandardServletEnvironment"/> </ property> </ bean> (2认同)