【发布时间】:2015-06-04 21:23:32
【问题描述】:
我有一个带有以下签名的 Spring Integration 4 bean 方法:
@Component
public class AService {
@ServiceActivator
public Message<?> serviceMethod(
Message<?> message,
@Header(ServiceHeader.A_STATE) AState state,
@Header(ServiceHeader.A_ID) String id) {
...
}
...
}
目前,我从 Spring Integration Java DSL (spring-integration-java-dsl:1.0.1.RELEASE) 流程中调用此服务方法,如下所示:
.handle("aService", "serviceMethod")
这绝对没问题,但是我想知道是否可以通过以下方式调用服务方法:
.handle(Message.class, (m, h) -> aService.serviceMethod(m, h))
我想以这种方式调用服务方法的原因是,当有人使用 Eclipse 等 IDE 查看代码时,他们可以通过例如突出显示方法和按 F3。
所以我的问题是,是否有另一种方法来调用 @ServiceActivator 方法(包括 @Header 注释)而不在 .handle() 中使用字符串作为服务名称/服务方法?
【问题讨论】: