是否可以在XML中将标准Spring Integration bean定义为可以覆盖的抽象bean。当然,这个想法是最小化配置。
例如,假设需要几个jms:消息驱动适配器bean,它们共享一些共同的属性。如何定义具有这些属性的抽象bean,然后使用具有每个实例之间不同参数的具体bean覆盖它? 感谢
答案 0 :(得分:2)
您不能使用命名空间;但是JMS消息驱动的适配器是一个相对简单的组件,您可以使用正常的<bean/>
语法进行定义。您需要将JmsMessageDrivenEndpoint
连接在一起,在其构造函数中需要AbstractMessageListenerContainer
(DefaultMessageListenerContainer
)和ChannelPublishingJmsMessageListener
。
通常,查看每个组件的名称空间解析器将告诉您要定义的<bean/>
。
另一种技术是定义一个“迷你”应用程序上下文,用属性占位符定义端点,然后每次创建一个新的上下文实例,使主上下文成为父上下文。
在this sample中针对出站ftp端点探索了一般技术。然而,它并没有使它的背景成为孩子(因为那里不需要它)。但是,当用于动态入站端点时,README有一个指向论坛线程的链接,该线程解释了该机制。