Spring integration 为什么我能';在dsl中实现genericHandler的类中,不能放置超过1个相同参数类型的setter?

Spring integration 为什么我能';在dsl中实现genericHandler的类中,不能放置超过1个相同参数类型的setter?,spring-integration,Spring Integration,我创建了一个实现GenericHandler的类,用于.handle()方法。我有这个类的setter,但是如果我有超过1个setter具有相同的参数类型,我会得到“find-difficle-parameter-type” 为什么会有这样的限制?这只是因为ServiceActivatingHandler基于后台的MessagingMethodInvokerHelper逻辑来确定适当的消息传递方法。而二传手正是这方面的候选人。 所以,如果确实有几个参数类型相同,我们最终会遇到歧义问题 为了解决您

我创建了一个实现GenericHandler的类,用于.handle()方法。我有这个类的setter,但是如果我有超过1个setter具有相同的参数类型,我会得到“find-difficle-parameter-type”


为什么会有这样的限制?

这只是因为
ServiceActivatingHandler
基于后台的
MessagingMethodInvokerHelper
逻辑来确定适当的消息传递方法。而二传手正是这方面的候选人。 所以,如果确实有几个参数类型相同,我们最终会遇到歧义问题

为了解决您的问题,我建议标记
对象句柄(p有效负载、映射头)使用
@ServiceActivator
实现


从另一方面来说,我同意它并不像我们从框架中期望的那个样好。因此,请随意提出问题,我们将把
.handle()
修改得更严格,并且只依赖
GenericHandler
实现中的
handle()
方法。

在JIRA中创建了一个改进问题