我有一个类型为FooComponent
的自定义组件,它通过以下行添加到路由中:
from("foo://bar?args=values&etc")
.bean(DownstreamComponent.class)
...
创建一个终结点和消费者(类型为FOFOCER
),该终结点和消费者反过来会发出消息,这些消息将到达DownStreComponent
和管道的其余部分。
为了进行监控,我需要FooComponent
消费者调用一个非驼峰对象上的方法,我正在创建一个Springbean。Camel管道对性能非常敏感,因此我无法将FooComponent
分成两半,并将监视器调用作为Camel组件插入它们之间(我的首选解决方案,因为FooComponent
不必真正了解监视器)。我不愿意将方法调用变成驼峰消息,稍后将由管道中的监控组件拾取,因为管道过滤稍后会变得复杂,我不想过度干预。
在FooConsumer
的某个地方,我有:
// in the class
@Autowired
Monitor monitor;
// inside the consumer's run method
monitor.noticeSomething();
问题是监视器永远不会被设置为监视器bean,监视器bean是在应用程序的其余部分中创建的。据我所知,这是因为对Spring来说,Fef消费者
本身是不可见的——这种类型的对象通常是在FefComponent
中创建的。
那么,如何让efComponent
找到它需要使用的Monitor
实例呢?
”foo://bar?args=values
最简单的方法是在FooComponent
类上创建一个Monitor
属性,并像其他bean一样连接它。
<bean id="monitorBean" class="my.Monitor"/>
<bean id="foo" class="my.FooComponent">
<property name="monitor" ref="monitorBean"/>
</bean>
然后在您的FooConsumer
中,当您需要获得显示器时,请拨打:
Monitor monitor = ((FooComponent) getEndpoint().getComponent()).getMonitor();
如果要按每个终结点更改监视器bean,则可以使用Camel的漂亮#
语法来定位具有该id的bean,并将其注入Endpoint属性。
foo:something?monitor=#monitorBean
然后,要在你的FOMER
中使用它,你只需说:
Monitor monitor = ((FooEndpoint) getEndpoint()).getMonitor();
如果你有一个Monitor的单例实例,你应该能够在efComponent类中@Autowire它。因为Camel在创建efComponent时会让Spring依赖注入。
然后,当您从组件创建endpoint/使用者时,可以传递monitor实例。
我正在为一个应用程序使用Apache骆驼和Spring启动。我需要从目录中读取,然后散集xml读取,然后处理未编组的对象以在其中设置更多数据,然后再次列表并将其发送到不同的文件夹。我使用以下路由。请告诉我在解组到处理器后如何发送POJO。目前默认情况下,它是进入处理器的交换。
我试图将类名传递给react组件以更改其样式,但似乎无法正常工作: 我试图通过传递具有各自风格的类的名称来改变药丸的风格。我是新来的,所以也许我做得不对。谢啦
问题内容: 我在烧瓶中有一个称为数组的函数,该函数接收一个列表并打印出列表中的项目: 在客户端,我想将名为str的javascript数组传递给该数组。我该怎么办?这就是我现在所拥有的,但是Flask没有读取添加的变量。有任何想法吗? 问题答案: Flask具有一个称为request的内置对象。在请求中有一个称为args的multidict。 您可以用来检索查询字符串的值。 当然,这需要一个get
问题内容: 我尝试将函数传递给子组件。当用户单击每个子组件时,将调用onclick函数。此onclick函数将写入父组件。 父组件: 子组件: 在这一行: 它说没有定义handleClick …如何解决这个问题? 感谢您的回答。 问题答案: 您需要将Agents绑定到AgentsList:这是您的代码的一个简单示例,我不得不删除一些东西,但是您明白了: http://jsfiddle.net/vh
问题内容: 我正在尝试访问DetailsPage组件中的 ID ,但无法访问它。我试过了 将参数传递给DetailsPage,但徒劳。 所以有什么想法如何将ID传递给DetailsPage吗? 问题答案: 如果要将props传递到路线内的组件,最简单的方法是利用,如下所示: 您可以使用以下内容访问道具: 将需要通过原路线的道具,否则你将只能得到内。
问题内容: 我想将功能传递给子组件,但出现此错误。 基本上是我想做的。 var ReactGridLayout = require(’react-grid-layout’); 似乎它是在React v16中引入的。因此,将函数从父代传递给子代的正确方法是什么? 问题答案: 我发现出了什么问题。这是因为react-grid-layout。我必须将其余的属性传递给孩子。