2014-09-10 205 views
4

我們有一個彈簧啓動應用程序,由於集成的需要而越來越複雜 - 比如在執行此操作後發送電子郵件,或在您之後播放jms消息等。在尋找更高級別的抽象,我遇到了阿帕奇駱駝(以前沒有使用駱駝)。我擁有的問題是我如何使用彈簧啓動應用程序?該應用程序具有標準彈簧控制器,服務並使用彈簧數據連接到數據庫。我在網上找到了很多關於如何將駱駝合併到一個spring-boot restful應用程序的幫助。那甚至是可行的東西,或者是駱駝與春季靴子不適合的完全不同的野獸?Camelize彈簧啓動應用程序

我讀過駱駝與Spring緊密集成,但我仍然不知道1)Spring控制器仍然是可以與駱駝一起使用的東西2)如果我可以從駱駝路由中調用其他spring bean,我是否可以調用從一個Spring bean調用駱駝路線(抱歉,如果這聽起來像駱駝新手問題專家)

由於我們要做一個例子:

  1. 整理寫什麼後關於訂單的數據庫,我們必須發送一封電子郵件給訂單處理部門
  2. 如果有人刪除了特定的用戶地址,我們必須發送到jms主題,以便其他應用程序可以採取措施。

今天每個http請求都通過Spring MVC堆棧進入。

在特定任務完成後,有沒有辦法將處理「交付」給駱駝? (比如通過Spring MVC堆棧將命令成功寫入數據庫並交給駱駝發送jms消息並執行其他操作)?或者我們是否應該用駱駝完全取代Spring?

不知道什麼是正確的道路。有人能指導我們嗎?

+0

儘管您可能能夠獲得Apache的駱駝worknig與Spring引導你可能也想嘗試Spring集成覆蓋同樣的事情Apache的駱駝。優點是Spring Boot已經支持它。 – 2014-09-11 05:54:31

+0

我有一個集成Spring Boot的Apache Camel應用程序。很棒。 – 2014-09-11 16:50:55

+0

@MattRaible - 你能分享一些更多細節嗎?你是否使用Spring的休息控制器或者通過駱駝完成所有事情?你如何從春季開機到駱駝回來?真的很感謝你能分享一些更多的細節。 – sat 2014-09-11 17:13:29

回答

-5

考慮向Spring Integration發送消息,然後在其中定義您的進程。您可以定義如何路由和處理任務。

另一個答案是將一些任務委託給標準的消息隊列,並在隊列的另一端定義處理。

+0

下面是關於如何使用JMS的指導。 [鏈接](http://spring.io/guides/gs/messaging-jms/)http://spring.io/guides/gs/messaging-jms/ – 2014-09-10 22:56:40

+0

的問題是關於駱駝這就好比到像Spring Integration因此錯誤地回答了這個問題 – 2016-05-04 08:18:03

0

一個選項是
1>在Spring DSL或Java DSL或其他方法中定義駱駝路由並在Spring應用程序上下文中定義它。
2>並且有一個實現了ApplicationContextAware的類,並將Spring ApplicationContext緩存在一個靜態變量中。
3>對於@Controller,我們可以得到這個靜態變量並獲得ApplicationContext。
4>使用駱駝上下文ID,我們可以從ApplicationContext執行getBean。
5>這是DefaultCamelContext的實例,用這個我們可以做一個createProducer並從@Controller調用駱駝路由。

0

就像其他人提到的那樣,spring-boot-camel(但是使用spring-boot-camel-starter作爲你的依賴)非常好用,而且它很容易設置。當你使用@Component註解你的RouteBuilder擴展和你的Processor實現時,它們直接連接到上下文中,並且你很好。然後,您可以@Autowire CamelContext或ProducerTemplate到您的類中,並根據需要使用它們。

你問過控制器如何與Camel一起工作,如果你@Autowire任何你需要的東西(可能是一個上下文或生產者模板),那麼答案是肯定的,你可以一起使用它們很容易。而當你使用彈簧網,你的情況下將啓動,仍然沒有任何額外的配置運行等

像馬修·韋爾斯認爲,這些鏈接將讓你在正確的方向。如果你或你的團隊中的其他人對駱駝非常熟悉,那麼你將很容易做你需要做的事情。但是,啊,我注意到這個問題是從2014年開始的,你可能已經超越了你的問題。至少如果有其他人通過這個線程停下來,他們將有足夠的信息去實現。如果你過來並重新訪問你的問題,請讓我們知道它是如何爲你服務的,以及你最終做了什麼。乾杯!

相關問題