在普通java类中使用Camel blueprint属性

时间:2018-02-19 11:46:20

标签: java apache-camel blueprint

我已成功使用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。变量永远不会从蓝图中获取值。

这可能吗,还是我应该寻找其他选择? 感谢

1 个答案:

答案 0 :(得分:2)

您可以使用PropertyInject注释

将属性注入到bean中
@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;
}