2

我有以下课程:

@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"/>

和道具文件:

main.url=veryniceurl.com

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

4

3 回答 3

1

@Value 似乎不适用于 Mule。相反,您需要通过 Mule XML 将其连接起来,我假设您将组件作为 Spring Bean 加载:

<spring:bean id="MyClass" class="com.example.MyClass">
   <spring:property name="mainUrl" value="${main.url}"/>
</spring:bean>
于 2013-04-18T15:25:58.457 回答
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/

于 2012-12-17T15:18:56.857 回答
0

您是否在 dispatcher-servlet.xml 中添加了上下文占位符?根据这里,@Controller 类中的 Spring @Value 注释没有评估属性文件中的值,他们似乎已经通过在其中添加它而不是应用程序上下文来解决它

于 2012-12-17T15:21:44.683 回答