Spring @Value注释不起作用,返回null

时间:2012-12-17 15:10:28

标签: java spring annotations mule

我有以下课程:

@Component
public class MyClass {

@Value("${main.url}") private String mainUrl;

以下XML上下文:

<context:annotation-config/>
  <context:component-scan base-package="mypackage"/>

  <context:property-placeholder file-encoding="UTF-8" location="classpath:/app.properties" ignore-unresolvable="true"/>

和prop file:

main.url=veryniceurl.com

注入不起作用,它始终为null。 我读了很多类似的例子,我认为一切都好,但事实并非如此。谁能告诉我,如果我忘了什么?我正在与Mule ESB合作。

3 个答案:

答案 0 :(得分:1)

@Value doesn't seem to work with Mule。相反,您需要通过Mule XML连接它,我假设您将组件作为Spring Bean加载:

<spring:bean id="MyClass" class="com.example.MyClass">
   <spring:property name="mainUrl" value="${main.url}"/>
</spring:bean>

答案 1 :(得分:0)

为您的媒体提供ID并使用以下语法:

@Value("#{jetProperties['jetBean.name']}")

<!-- define the properties file to use -->
<util:properties id="jetProperties" location="classpath:/jet.properties" />

来自http://chrislovecnm.com/2010/03/08/spring-3-java-based-configuration-with-value/

答案 2 :(得分:0)

您是否在dispatcher-servlet.xml中添加了上下文占位符?按照这里,Spring @Value annotation in @Controller class not evaluating to value inside properties file他们似乎通过在那里添加而不是应用程序上下文来解决它