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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Camel 2.11 –没有Spring的Camel Web应用程序

發(fā)布時(shí)間:2023/12/3 javascript 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Camel 2.11 –没有Spring的Camel Web应用程序 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在撰寫本文時(shí),我們剛剛向即將到來的Apache Camel 2.11添加了一個(gè)新組件,該組件允許使用Camel運(yùn)行Web應(yīng)用程序,而不必依賴Spring Framework來加速Camel。 或與此相關(guān)的任何其他第三方框架。

有點(diǎn)as愧地說,在2013年,我們要在Apache Camel中開箱即用提供此功能有點(diǎn)晚了。

在支持Servlet 3.0規(guī)范的現(xiàn)代Web容器中。 您可以使用新的@WebListener注釋以編程方式引導(dǎo)代碼。 但是即使如此,仍然需要完成工作,因?yàn)槟鷮⑿枰O(shè)置和配置Camel,并確保在停止Web應(yīng)用程序時(shí)取消注冊(cè)和停止資源。

我還沒有找到一種使用@WebListener并允許對(duì)框架(例如Apache Camel)進(jìn)行外部配置的巧妙方法。 我真的不想硬編碼我的配置,也不必發(fā)明自己的加載外部配置和配置應(yīng)用程序的方式。 有人知道解決此問題的方法嗎?

無論如何,我們還想要一種適用于基于老式Servlet 2.x的容器的解決方案。 有很多人在那里奔跑。 即便如此,帶有web.xml文件的舊式配置在較新的Servlet 3.0容器中也同樣有效。 因此,我們需要一種適合兩個(gè)世界的即用型解決方案。

展示的例子

我們?cè)贏pache Camel上有許多示例,其中一個(gè)是簡單的Web應(yīng)用程序,可以將其作為.war文件部署在Apache Tomcat或任何其他Web容器中。

這個(gè)示例使用Spring框架來增強(qiáng)Spring XML文件,其中嵌入了Camel。 因此,我們要做的是在不需要Spring的情況下重做此示例。

Apache Camel站點(diǎn)上記錄了兩個(gè)示例:

  • http://camel.apache.org/servlet-tomcat-example.html
  • http://camel.apache.org/servlet-tomcat-no-spring-example.html

CamelServletContextListener

在Camel 2.11中,我們有一個(gè)名為camel-servletlistener的新組件,它提供了一個(gè)新的CamelServletContextListener類,您可以在web.xml文件中對(duì)其進(jìn)行配置。 然后,這將對(duì)CamelContext進(jìn)行增強(qiáng)處理,并使用上下文初始化參數(shù)作為其配置。 該上下文偵聽器具有大量配置,因此您可以輕松地根據(jù)需要配置Camel。 這些選項(xiàng)在Camel文檔中列出:http://camel.apache.org/servletlistener-component.html。 并且如果您需要在Camel啟動(dòng)/停止時(shí)執(zhí)行任何自定義邏輯,那么我們?yōu)榇颂峁┝艘粋€(gè)API,即CamelContextLifecycle接口。 Camel文檔中有更多詳細(xì)信息和示例。

為了了解這一點(diǎn),我建議閱讀此博客后,查看新示例以及camel-servletlistener組件的文檔。

剖析范例

有兩個(gè)例子

  • http://camel.apache.org/servlet-tomcat-example.html
  • http://camel.apache.org/servlet-tomcat-no-spring-example.html

當(dāng)部署到使用Java 1.6的Apache Tomcat 7.0.30的全新安裝時(shí),我們可以充分了解兩者之間的差異。

servlet-tomcat-示例

大小:5.8 MB

罐子:19

所載課程:4507

當(dāng)前堆大小:10 MB

servlet-tomcat-no-spring-example

大小:2.9 MB

罐子:10

所載課程:3698

當(dāng)前堆大小:8 MB

我使用jconsole來查看JVM中帶有Apache Tomcat和已部署示例的已加載類的數(shù)量。 堆大小被測量為執(zhí)行GC后獲得的最小值。 因此,我們從發(fā)行版中削減了10個(gè)JAR和3MB。 最好避免加載1000個(gè)類的代碼。

備注

我只想強(qiáng)調(diào)一下,這個(gè)新的camel-servletlistener組件的目標(biāo)是使人們能夠輕松地在任何Web容器中引導(dǎo)其Camel應(yīng)用程序,而無需綁定到任何特定的第三方框架(例如Spring)。 Apache Camel項(xiàng)目旨在保持中立和不可知論。 允許人們以任何方式和選擇的容器來運(yùn)行Camel。

參考: Camel 2.11 –我們的JCG合作伙伴 Claus Ibsen在Apache Camel博客的Claus Ibsen上沒有Spring的Camel Web應(yīng)用程序 。

翻譯自: https://www.javacodegeeks.com/2013/01/camel-2-11-camel-web-applications-without-spring.html

總結(jié)

以上是生活随笔為你收集整理的Camel 2.11 –没有Spring的Camel Web应用程序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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