java - Spring Integration Java DSL .handle(String beanName, String methodName)

标签 java spring spring-integration dsl

我在很多情况下都见过 .handle("someBean", "someMethod") EIP 方法,在集成流程中发挥着巨大的作用。我可以理解它只是以前的 XML 配置中的一个服务激活器,但我需要一些关于如何创建这个 bean 以及 someMethod 返回什么的说明。另外,在什么情况下我必须使用 .handle(...)?也许使用 Java DSL 的完整示例应该适合我。

最佳答案

正如我们所注意到的,.handle("someBean", "someMethod")完全等于<int:service-activator ref="someBean" method="someMethod"/> : https://docs.spring.io/spring-integration/reference/html/messaging-endpoints-chapter.html#service-activator-namespace .

这意味着您应该有 someBean someMethod 中服务调用的定义。例如,您需要执行简单的逻辑来转换 payload将传入的消息改为大写并返回结果:

class MyService {

   public String someMethod(String payload) {
        return payload.toUpperCase();
   }

}

该方法的返回结果为 payloadIntegrationFlow 中下一个 EIP 端点的出站消息定义。

您在引用手册中看到的所有内容对于 Java DSL 来说都是完全正确的。特别是 <service-activator> 的所有规则或@ServiceActivator申请此.handle() .

关于java - Spring Integration Java DSL .handle(String beanName, String methodName),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46470774/

相关文章:

spring - 无法将名称[org.hibernate.dialect.MySQL5Dialect]解析为策略[org.hibernate.dialect.Dialect]

java - 使用 Spring-Integration(仅限注释)获取具有某些字段(投影)的 mongodb 文档

java - Spring FTP 入站 channel 适配器每隔一定时间将日志记录到 FTP

java - 如何使用 .split() 分割不同空间量的字符串?

java - 获得权限后如何启动应用程序?

java - 迭代对象/列表

使用 Spring JDBC 模板从数据库获取 800k 记录时发生 Java 堆空间错误

java - 使用 Java 托管 HTTP 端点

java - libgdx - 如何访问 postRunnable

java - 如何消除在Windows上运行的Java Swing中的黑滞后区域