我是阿帕奇骆驼的新手。我已经将我的应用程序设置为使用基于XML的配置来使用Apache Camel。我的配置包含多个具有类似步骤集的路由。我试图找到一种方法,将这些不同路线的共同或重复部分放在一个地方,并从路线中引用它们,而不是一次又一次地重复它们?
<context:property-placeholder location="classpath:quartz.properties" />
<context:component-scan base-package="com"></context:component-scan>
<camel:route>
<camel:from uri="quartz://deadlines/SDGWD?cron=15+34+14+?+*+MON-SUN+*" />
<camel:onCompletion>
<camel:to uri="seda:checkAnyPendingDeadlines"/>
</camel:onCompletion>
<camel:to uri="bean:sdgwdNotifier" />
<camel:choice>
<camel:when>
<camel:method ref="deadlineHandler" method="canProcessDeadline" />
<camel:bean ref="deadlineHandler" method="prepareDeadline" />
<camel:bean ref="sdgwdProcessor" method="initiateMessageProcessing" />
<camel:bean ref="schedulerXdrTransformer" method="marshall" />
<camel:to uri="wmq:SU.SES" />
<camel:bean ref="sdgwdProcessor" method="waitForAcknowledgment" />
<camel:bean ref="sdgwdProcessor" method="afterMessageProcessed" />
<camel:bean ref="deadlineHandler" method="onDeadlineProcessingCompletion" />
</camel:when>
<camel:otherwise>
<camel:bean ref="deadlineHandler" method="enqueDeadline" />
</camel:otherwise>
</camel:choice>
</camel:route>
<camel:route>
<camel:from uri ="seda:checkAnyPendingDeadlines"/>
<camel:onCompletion>
<camel:to uri ="seda:checkAnyPendingDeadlines"/>
</camel:onCompletion>
<camel:to uri="bean:deadlineHandler?method=getNextProcessableDeadline" />
<camel:choice>
<camel:when>
<camel:method ref="deadlineHandler" method="canProcessDeadline" />
<camel:bean ref="deadlineHandler" method="prepareDeadline" />
<camel:choice>
<camel:when>
<camel:simple>${body.deadline} == ${type:settlementcontrol.scheduler.model.Deadline.SDGW} </camel:simple>
<camel:bean ref="sdgwdProcessor" method="initiateMessageProcessing" />
<camel:bean ref="schedulerXdrTransformer" method="marshall" />
<camel:to uri="wmq:SU.SES" />
<camel:bean ref="sdgwdProcessor" method="waitForAcknowledgment" />
<camel:bean ref="sdgwdProcessor" method="afterMessageProcessed" />
<camel:bean ref="deadlineHandler" method="onDeadlineProcessingCompletion" />
</camel:when>
</camel:choice>
</camel:when>
<camel:otherwise>
<camel:bean ref="deadlineHandler" method="enqueDeadline" />
</camel:otherwise>
</camel:choice>
</camel:route>
包含重复部分流程的公共路线是否足够?如果是,那么创建如下所示的内容:
<camel:route id="myCommonPartOfFlow">
<camel:from uri="direct-vm:common-in"/>
[common part]
</camel:route>
现在可以从主路由调用sub(myCommonPartOfFlow)路由:
<camel:to uri="direct-vm:common-in/>
抽象是编程的关键。你应该仔细选择你需要抽象的程度。充满活力的初学者经常创建许多没有什么用的抽象。一个标识是,你是否创建了这样一个类,不包含任何代码并且没有真的做什么事情,除了抽象一些东西。这种抽象是可以理解的,但代码的简洁性的价值必须与代码的抽象价值相权衡。有时候,我们可以看到一种热情的理想主义者犯的错误:在工程的一开始,定义了一大堆的看起来抽象得很美的类,然后他会推测说它们可以处理每一个可能出现
如何在不创建其他对象的情况下用Java压缩这些代码? 和其他语言一样 无需修改任何类或使用任何模式(生成器或构造函数)。我的意思是为了写更少的代码
本文向大家介绍Extjs让combobox写起来简洁又漂亮,包括了Extjs让combobox写起来简洁又漂亮的使用技巧和注意事项,需要的朋友参考一下 也已经写了很久时间的extjs ,每次都用到很多的combobox,配置很多东西觉得实在是太麻烦,所以根据常用到的情况写了一个简便的combobox,再次记录下来,以免放在某个地方忘记了找不到了。 定义一个基本的baseCombobox类,如下。
问题内容: 我一直在努力写两个管道函数,一个可以编译较少的文件,另一个可以合并这些文件。我想学习如何为更复杂的插件编写转换流/管道。 因此,我想知道如何从另一个管道读取数据,以及如何更改该数据并将其发送到下一个管道。这是我到目前为止的内容: 我无法在第二个管道中获得每个文件的。如何发送? 问题答案: 嗯,您不需要在这里使用,您已经获得了文件流(在此处)。 还有一点,您没有将文件发送回管道,所以我想
问题内容: 下面的代码检查和是不同的值(变量,,只能有值,或),并且如果是这样,套到第三个字符: 能否以更简洁,可读和有效的方式做到这一点? 问题答案: 我假设您的代码中的三种情况之一成立。在这种情况下,该集合将由单个元素组成,由返回。 编辑: 正如Raymond Hettinger在评论中所建议的那样,您还可以使用元组拆包从集合中提取单个元素:
问题内容: 我有一个带有DateTime的字段。我想忽略该字段上的时间,并添加一个指定的小时。 这是我要查找的示例,其中@h可以是0到23之间的任何值。(为了简化起见,我使用的是getdate()而不是表中的字段)。 我怎样才能更简单地写这个?请记住,我对可读性/可维护性比对速度更感兴趣。 问题答案: 您可以根据需要在此处放置参数。
什么是WebGL 虽然WebGL可以用来实现3D对象绘制,但WebGL并非一个3D引擎 WebGL只是关于绘制点、线、三角形的接口 它是在GPU上运行代码的低级API 着色器(Shaders) 使用着色器(shader)来绘制图形 顶点着色器计算顶点位置 片段着色器处理光栅化(像素点颜色) GL着色器语言 看起来如何?特定于GPU的语言 (GLSL) 看起来像C语言,以void main()开始
问题内容: 我需要从头开始为omap4编写SPI Linux字符设备驱动程序。我知道编写设备驱动程序的一些基础知识。但是,我不知道如何从头开始编写平台特定的设备驱动程序。 我已经编写了一些基本的char驱动程序,并且我认为编写SPI设备驱动程序将与此类似。Char驱动程序的结构包含在驱动程序中实现的功能。 现在,我将以spi-omap2-mcspi.c代码作为参考,以获取从零开始开发SPI驱动程序