在服务激活器中选择重载方法(Spring 集成)

choose overloaded method in service activator (Spring Integration)

我定义了一个 serviceActivator :

<integration:service-activator input-channel="sampleChannel" 
ref="sampleImpl" method="remove"/>

在SampleImpl中,重载了两个remove方法:

 public Object remove(Object payload) {
    //some code ...
    return payload;
}

 public void remove() {
  //some code ...
}

在方法 属性 中,我想选择不带参数的删除方法 ( remove() )。在某些情况下,我想选择带参数的删除方法( remove(Object payload) )。我发现总是将 payload 作为参数传递给 remove 方法,那么我怎么才能只选择 remove() 呢?

使用 XML DSL 是不可能的。您必须重命名其中之一或编写包装服务。这类似于 Java Beans 中的 setter 选择。所以,如果你想要不同的 setter 有不同的逻辑,你可以用不同的词来命名它们。