我想要建立一個帶有幾個出站網關的方案,這些出站網關可以在運行時添加(可以說它以2個網關開始,但能夠在運行時添加3-4個節點)。我想爲其功能提供http出站網關,但希望在運行時構建它們的實例。 問題是在春天的上下文中註冊訂閱這些網關的頻道。 Atm我有3個desicions,不能選擇正確的一個。春季集成中運行時可配置的動態路由
將新創建的頻道註冊到
registerBeanDefinition("<my id>", definition)
或類似的應用程序上下文。不滿意這個desicion原因,寧願不對已經建立的上下文進行這樣的粗略訪問。具有預定義的頻道列表,並限制插入新的出站網關和此預定義頻道的數量。變體適合我,因爲只有少數網關計劃,並且對我來說似乎相當安全,雖然不是很整潔。
尋找解決方案,我發現
org.springframework.integration.support.channel.BeanFactoryChannelResolver
與org.springframework.integration.support.channel.HeaderChannelRegistry
這似乎適合我使用原型通道bean。 (我需要參考的地圖名稱)。但因爲org.springframework.integration.support.channel.BeanFactoryChannelResolver
沒有公共setter這個註冊表,我不知道我可以安全地使用它,但我認爲使用自己的ChannelResolver滿足這種需求。
解決此問題的正確方法是什麼?