Используйте свойство светокопии Camel в обычном Java-классе

Я успешно использовал свойства в маршрутах 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. Переменная никогда не получает значение из чертежа.

Это возможно, или я должен искать альтернативы? Спасибо

1 ответ

Решение

Вы можете добавить свойства в ваши бины, используя PropertyInject аннотирование

@PropertyInject("myFile")
private String fileName;

При этом не должно быть необходимости делать то, что вы пытаетесь достичь в своем последнем блоке кода.

Хотя, ради образования, если вы это сделаете

<bean id="myConverter" class="my.package.name.MyClass">
    <property name="fileName" value="${myFile}" />
</bean>

Вы можете получить значение в вашем бине следующим образом:

private String fileName;

public void setFileName(String myFile) {
    this.fileName = myFile;
}
Другие вопросы по тегам