【发布时间】:2014-06-26 21:13:29
【问题描述】:
例如: xmlns:int-jdbc="http://www.springframework.org/schema/integration/jdbc"
<int-jdbc:inbound-channel-adapter.......
我希望它使用我的自定义实现,所以我需要知道 1)它使用什么类(所以我可以扩展它并覆盖任何东西) 2)而不是我如何告诉它使用我的新类而不是默认类。
这可能吗?
谢谢
【问题讨论】:
例如: xmlns:int-jdbc="http://www.springframework.org/schema/integration/jdbc"
<int-jdbc:inbound-channel-adapter.......
我希望它使用我的自定义实现,所以我需要知道 1)它使用什么类(所以我可以扩展它并覆盖任何东西) 2)而不是我如何告诉它使用我的新类而不是默认类。
这可能吗?
谢谢
【问题讨论】:
目前无法使用 XML 命名空间注入您自己的实现,但您可以简单地连接 <bean/> 定义。毕竟,这就是命名空间解析器所做的一切。
在这种情况下,您需要一个 SourcePollingChannelAdapterFactoryBean 类的 bean,它需要 PollerMetadata 和一个 source(并创建一个 SourcePollingChannelAdapter),而 source 是一个 JdbcPollingChannelAdapter 类的 bean(它是MessageSource)。
所以你可以继承JdbcPollingChannelAdapter。
如果您认为您的实施将具有广泛的吸引力,请打开一个 JIRA 问题并考虑贡献它。
【讨论】:
@Bean 类型的 MessageSource 上使用 java @Configuration 和 @InboundChannelAdapter 注释。