java - Spring 集成 AbstractReplyProducingMessageHandler doInit 与 onInit

标签 java spring spring-integration message-handlers

我正在将一些代码从 Spring Integration 2.x 重构到 4.x,并且在扩展 AbstractReplyProducingMessageHandler 的处理程序中遇到编译错误。

该抽象类上的 onInit 方法是 final,但我的代码在 2.0 S.I. 代码中成功覆盖了它。

有一个似乎可以被重写的方法,称为

doInit()

onInit方法和doInit方法在使用上有什么区别。 java 文档不是很有帮助(事实上,除了 onInit 方法是 final 之外,它们不包含任何信息。)

最佳答案

是的,您是对的:这些方法没有区别,只是从 IntegrationObjectSupport#afterPropertiesSet() 调用。

onInit() 设置为 final 的原因是为了防止实现中未调用 super.onInit() 的问题:-)。

如您所见,AbstractReplyProducingMessageHandler#onInit() 具有如下关键代码:

this.advisedRequestHandler = (RequestHandler) proxyFactory.getProxy(this.beanClassLoader);

关于java - Spring 集成 AbstractReplyProducingMessageHandler doInit 与 onInit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29258281/

相关文章:

java - 如何在单独的 Spring 集成应用程序中实现 JMS 入站和出站配置?

java - spring 与 activemq 集成

java - 如何在Spring Integration中获取rss feedChannel SyndEntry消息的来源?

java - 关于 XSS 的一些说明

java - 二维数组无法正常工作

java - Java 中无法正确读取文件

java - 架构 Spring MVC + Angular 应用程序

java.lang.NoClassDefFoundError : org/json/simple/parser/ParseException with eclipse and spring 错误

spring - 如何为多个包指定单个切入点

java - 用户输入存储在字符串数组中