Java Spring集成AbstractReplyProducingMessageHandler doInit vs onInit

Java Spring集成AbstractReplyProducingMessageHandler doInit vs onInit,java,spring,spring-integration,message-handlers,Java,Spring,Spring Integration,Message Handlers,我正在将一些代码从SpringIntegration2.x重构到4.x,并在扩展AbstractReplyProducingMessageHandler的处理程序中遇到编译错误 该抽象类上的onInit方法是final,但是我的legacy代码在2.0 S.I.代码中成功地覆盖了它 有一种方法似乎可以被过度调用 doInit() onInit方法和doInit方法在使用上有什么区别。java文档不是很有帮助(事实上,除了onInit方法是final)之外,它们不包含任何信息)是的,你是对的:这

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

该抽象类上的
onInit
方法是
final
,但是我的
legacy
代码在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);

请务必结帐。这特别的突破性变化是。谢谢你们。我读过3.x到4.x的迁移指南,但没有读过2.2到3.0的迁移指南。