日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

与Java EE和Camel的轻量级集成

發(fā)布時間:2023/12/3 java 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 与Java EE和Camel的轻量级集成 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Enterprise Java具有不同的風(fēng)格和觀點。 從簡單的平臺技術(shù)開始,即眾所周知的Java EE,再到不同的框架和集成方面,最后是涉及以數(shù)據(jù)為中心的用戶界面或特定可視化效果的用例。 Java EE本身無法解決的最突出的問題是“集成”。 有許多來自知名供應(yīng)商的產(chǎn)品,它們可以解決各種集成問題并承諾提供完整的解決方案。 作為開發(fā)人員,您不時需要的只是一個可行的解決方案。 對于系統(tǒng)集成而言,這是Java EE開發(fā)人員的終極“入門資源”。

一點整合理論

集成挑戰(zhàn)并不是什么新鮮事物。 由于存在不同類型的系統(tǒng),并且需要將其數(shù)據(jù)組合到另一個系統(tǒng)中,因此這一直是中心主題。 Gregor Hohpe和Bobby Woolf開始收集用于解決客戶集成問題的一組基本模式。 這些企業(yè)集成模式 (EIP)可以被視為集成的圣經(jīng)。 它嘗試通過定義65種集成模式來找到有關(guān)異步消息傳遞體系結(jié)構(gòu)的通用詞匯表和知識體系。 Forrester將其稱為“ EAI的核心語言”。

什么是Apache Camel?

Apache Camel為您提供了EIP的接口,基礎(chǔ)對象,通常需要的實現(xiàn),調(diào)試工具,配置系統(tǒng)以及許多其他幫助器,當(dāng)您要實施解決方案以遵循EIP時,將為您節(jié)省大量時間。 這是一個完整的生產(chǎn)就緒框架。 但這并不能止于最初定義的65個模式 。 它擴展了150多個現(xiàn)成的組件 ,可解決端點或系統(tǒng)或技術(shù)集成方面的各種問題。 在較高的層次上,Camel由CamelContext組成,其中包含Component實例的集合。 組件本質(zhì)上是Endpoint實例的工廠。 您可以在Java代碼或IoC容器(例如Spring,Guice或CDI)中顯式配置Component實例,也可以使用URI自動發(fā)現(xiàn)它們。

Java EE開發(fā)人員為什么要關(guān)心?

企業(yè)項目要求我們這樣做。 處理各種系統(tǒng)集成一直是一個具有挑戰(zhàn)性的話題。 您可以通過使用消息傳遞系統(tǒng)選擇復(fù)雜的道路,并將其連接到您的應(yīng)用程序中,然后自己實現(xiàn)一切,或者通過使用不同的產(chǎn)品走上繁重的道路。 從那時起,我一直是更實用的解決方案的粉絲。 這就是Camel的實際含義:相對輕巧,易于引導(dǎo),并附帶大量預(yù)構(gòu)建的集成組件,使開發(fā)人員可以專注于解決其背后的業(yè)務(wù)需求。 無需學(xué)習(xí)新的API或工具。 Camel帶有基于Java的Fluent API , Spring或Blueprint XML Configuration文件 ,甚至還有Scala DSL 。 因此,無論您是從哪一個基地跳下來的,您總會發(fā)現(xiàn)一些您已經(jīng)知道的東西。

如何開始?

我懂了嗎 想要試一試? 這也很容易。 根據(jù)您使用的框架和平臺,您有不同的方式。 回顧帖子標(biāo)題,本文將重點介紹Java EE。

因此,您可以做的第一件事就是自行引導(dǎo)駱駝。 您需要的只是核心駱駝依賴關(guān)系和cdi-camel依賴關(guān)系。 設(shè)置一個普通的Java EE 7 maven項目并添加這兩個項目已足夠。

<dependency><groupId>org.apache.camel</groupId><artifactId>camel-core</artifactId><version>${camel.version}</version> </dependency> <dependency><groupId>org.apache.camel</groupId><artifactId>camel-cdi</artifactId><version>${camel.version}</version> </dependency>

接下來需要做的是找到一個注入第一個CamelContext的地方。

@InjectCdiCamelContext context;

注入所有內(nèi)容后,您可以開始向其中添加路由。 在GitHub上的CamelEE7項目中可以找到更完整的示例。 只需叉子就可以了。 這將在隨機的Java EE應(yīng)用程序服務(wù)器上工作。 如果您已經(jīng)在使用WildFly ,則還可以充分利用WildFly-Camel子系統(tǒng) 。

WildFly駱駝子系統(tǒng)

wildfly-camel的策略是,用戶可以在WildFly已經(jīng)支持的部署中“僅使用”駱駝核心/組件API。 換句話說,Camel應(yīng)該在標(biāo)準(zhǔn)Java EE部署中“正常工作”。 二進制文件由平臺提供。 部署無需擔(dān)心模塊/接線細節(jié)。

定義和部署駱駝上下文可以以不同的方式完成。 您可以在standalone-camel.xml服務(wù)器配置中直接定義上下文,也可以將其作為Web應(yīng)用程序的一部分部署為帶有預(yù)定義-camel-context.xml文件后綴的單個XML文件,也可以作為另一個WildFly支持的一部分進行部署部署為META-INF / jboss-camel-context.xml文件。

WildFly Camel測試套件使用WildFly Arquillian管理的容器。 這可以連接到已經(jīng)運行的WildFly實例,或者在需要時啟動獨立服務(wù)器實例。 已經(jīng)實現(xiàn)了許多測試增強器,使您可以將這些WildFly Camel特定類型注入Arquillian測試用例中。 您可以將CamelContextFactory或CamelContextRegistry注入為@ArquillianResource。

如果要開始使用它,可以更詳細地看我的博客文章 。

尋找例子


如果您很興奮,并且一切都準(zhǔn)備就緒并且可以運行,那么現(xiàn)在該深入探討一些示例了。 首先要看的是發(fā)行版中的示例目錄 。 有一個您可能需要的所有示例。

最重要的用例之一是與ActiveMQ的緊密集成。 并假設(shè)您有一堆JMS消息需要轉(zhuǎn)換為存儲在文件系統(tǒng)中的文件:這是一項完美的Camel作業(yè)。 您需要配置ActiveMQ組件 ,而不是上面所看到的,它還允許使用Apache ActiveMQ將消息發(fā)送到JMS隊列或主題,或者從JMS隊列或主題使用消息。

以下代碼向您展示了如何將JMS消息從test.queue隊列轉(zhuǎn)換為文件組件,該文件組件將使用它們并將它們存儲到磁盤。

context.addRoutes(new RouteBuilder() {public void configure() {from("test-jms:queue:test.queue").to("file://test");}});

想像一下自己做。 需要更多復(fù)雜的示例嗎? 與Twitter集成? 還是其他不同的技術(shù)? 有很多示例可供選擇。 可能是駱駝最令人興奮的方面之一。 它輕巧,穩(wěn)定,并且已經(jīng)存在多年了。 確保還遵循郵件列表和論壇 。

翻譯自: https://www.javacodegeeks.com/2014/12/lightweight-integration-with-java-ee-and-camel.html

總結(jié)

以上是生活随笔為你收集整理的与Java EE和Camel的轻量级集成的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。