Spring Integration AbstractReplyProducingMessageHandler doInit vs onInit

时间:2015-03-25 14:19:56

标签: java spring spring-integration message-handlers

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

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

有一种似乎可以被覆盖的方法叫做

doInit()

onInit方法和doInit方法之间的区别有何不同。 java文档不是很有帮助(事实上它们除了onInit方法final之外不包含任何信息。)

1 个答案:

答案 0 :(得分:1)

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

onInit()设为final以保护实施不会在其实施中调用super.onInit()的原因: - )。

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

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