我已成功使用Camel路由中的属性。这次我需要从没有定义Camel路由的辅助类中的文件中读取值。
这是我的蓝图的属性占位符部分:
<cm:property-placeholder persistent-id="my.package.pph" update-strategy="reload">
<cm:default-properties>
<cm:property name="myFile" value="C:\\temp\\myFile.xml" />
</cm:default-properties>
</cm:property-placeholder>
这就是我在课堂上宣称我想要这个价值的方式:
<bean id="myConverter" class="my.package.name.MyClass">
<property name="fileName" value="${myFile}" />
</bean>
然后,在我的类中,我声明了一个与bean中的属性同名的变量,并在Eclipse中生成了getter和setter。变量永远不会从蓝图中获取值。
这可能吗,还是我应该寻找其他选择? 感谢
答案 0 :(得分:2)
您可以使用PropertyInject
注释
@PropertyInject("myFile")
private String fileName;
有了这个,就不需要做你在上一个代码块中想要实现的目标了。
虽然为了教育,如果你这样做:
<bean id="myConverter" class="my.package.name.MyClass">
<property name="fileName" value="${myFile}" />
</bean>
您可以像这样获取bean中的值:
private String fileName;
public void setFileName(String myFile) {
this.fileName = myFile;
}