我有以下课程:
@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合作。
答案 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他们似乎通过在那里添加而不是应用程序上下文来解决它