我正在将一些代码从Spring Integration 2.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);