我在Spring引导中使用Apache camel作为中间层实现我的代码,而在camel中设置路由我使用的是quartz2组件,我想使用外部quartz.properties文件覆盖默认的quartz.properties文件。可以有人请帮我解决这个问题。 我尝试使用CommandLineRunner实现,但我得到如下的异常 org.springframework.beans.factory.BeanCreationException:创建名称为' schedulerApplication'的注册自动连接依赖项失败;嵌套异常是java.lang.IllegalArgumentException:无法解析占位符&org.quartz.scheduler.instanceName'价值" $ {org.quartz.scheduler.instanceName}"
答案 0 :(得分:0)
如果我理解你的话,你必须想要将自己的石英属性外化并尝试在camel-quartz2组件中使用它。 在quartz.properties中创建自定义条目,如下所示
quartz.uri=quartz://group/quartzScheduler?cron=0+05+21+?+*+*
以下是示例路线
public void configure() throws Exception {
super.configure();
String externalService= PropertyParser.getInstance().getStringProperty(Key.Service);
from(quartzEndpoint("sampleQuartz"))
.to(externalService)
.process(new Processor() {
public void process(Exchange e) throws Exception {
log.info("Before storing " + MessageHelper.extractBodyAsString(e.getIn()));
MyHelper.writeCLOBPut(e);
log.info("After storing " + MessageHelper.extractBodyAsString(e.getIn()));
}
}).log("Stored in DB");
}
希望这有帮助