在 Apache Camel 中以编程方式使用属性
Programatic Use Of Properties In Apache Camel
我正在使用 Apache Camel 开始一个项目,并想添加一种方法来将一些信息存储为属性。大多数示例似乎使用 Spring 和 XML,但我正在使用 Java DSL 方式并且似乎无法找到关于如何正确执行此操作的好示例。
我从 camel-archetype-java 原型创建了一个项目,到目前为止只添加了 Quartz 和一个路由:
package com.commserv.integration;
import org.apache.camel.builder.RouteBuilder;
public class FilemakerCsvToMailroom extends RouteBuilder {
public void configure() {
from("file:/Volumes/Data-1/Camel?autoCreate=false&startingDirectoryMustExist=true&noop=true&scheduler=quartz2&scheduler.cron=0+*+*+*+*+?&scheduler.triggerId=EveryMinute&scheduler.triggerGroup=FilemakerCsvToMailroom") // every minute
.routeId("FilemakerCsvToMailroom")
.log("FilemakerCsvToMailroom triggered");
}
}
项目代码可在this link查看。
- 在哪里可以将我的 属性 文件添加到此类项目中? (我反射性地将它添加到 src/main/resources,因为原型那里有一个类似的 log4j 文件。)
- 如何在不使用 XML 的情况下使其在我的项目中的上述路径中可用?我使用 Property Component 吗? link 处的文档的问题在于,简短的示例都引用了
context
变量,但不确定它来自哪里。
您可以将属性文件添加到 src/main/resources。
您可以像这样使用 Java 配置属性组件:
public void configure() {
PropertiesComponent pc = new PropertiesComponent();
pc.setLocation("classpath:myprop.properties");
getContext().addComponent("properties", pc);
// Will output "result1" every 5 seconds.
from("timer:mytimer?period=5s")
.log("{{dev.endpoint}}");
}
如果您的属性文件 src/main/resources/myprop.properties 包含
dev.endpoint = result1
test.endpoint = result2
请注意,您可以在 RouteBuilder 中调用 getContext() 来获取 运行 Camel 上下文。
我正在使用 Apache Camel 开始一个项目,并想添加一种方法来将一些信息存储为属性。大多数示例似乎使用 Spring 和 XML,但我正在使用 Java DSL 方式并且似乎无法找到关于如何正确执行此操作的好示例。
我从 camel-archetype-java 原型创建了一个项目,到目前为止只添加了 Quartz 和一个路由:
package com.commserv.integration;
import org.apache.camel.builder.RouteBuilder;
public class FilemakerCsvToMailroom extends RouteBuilder {
public void configure() {
from("file:/Volumes/Data-1/Camel?autoCreate=false&startingDirectoryMustExist=true&noop=true&scheduler=quartz2&scheduler.cron=0+*+*+*+*+?&scheduler.triggerId=EveryMinute&scheduler.triggerGroup=FilemakerCsvToMailroom") // every minute
.routeId("FilemakerCsvToMailroom")
.log("FilemakerCsvToMailroom triggered");
}
}
项目代码可在this link查看。
- 在哪里可以将我的 属性 文件添加到此类项目中? (我反射性地将它添加到 src/main/resources,因为原型那里有一个类似的 log4j 文件。)
- 如何在不使用 XML 的情况下使其在我的项目中的上述路径中可用?我使用 Property Component 吗? link 处的文档的问题在于,简短的示例都引用了
context
变量,但不确定它来自哪里。
您可以将属性文件添加到 src/main/resources。
您可以像这样使用 Java 配置属性组件:
public void configure() {
PropertiesComponent pc = new PropertiesComponent();
pc.setLocation("classpath:myprop.properties");
getContext().addComponent("properties", pc);
// Will output "result1" every 5 seconds.
from("timer:mytimer?period=5s")
.log("{{dev.endpoint}}");
}
如果您的属性文件 src/main/resources/myprop.properties 包含
dev.endpoint = result1
test.endpoint = result2
请注意,您可以在 RouteBuilder 中调用 getContext() 来获取 运行 Camel 上下文。