Используйте свойство светокопии 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;
}