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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

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

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

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

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

在支持Servlet 3.0規范的現代Web容器中。 您可以使用新的@WebListener注釋以編程方式引導代碼。 但是即使如此,仍然需要完成工作,因為您將需要設置和配置Camel,并確保在停止Web應用程序時取消注冊和停止資源。

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

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

展示的例子

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

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

Apache Camel站點上記錄了兩個示例:

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

CamelServletContextListener

在Camel 2.11中,我們有一個名為camel-servletlistener的新組件,它提供了一個新的CamelServletContextListener類,您可以在web.xml文件中對其進行配置。 然后,這將對CamelContext進行增強處理,并使用上下文初始化參數作為其配置。 該上下文偵聽器具有大量配置,因此您可以輕松地根據需要配置Camel。 這些選項在Camel文檔中列出:http://camel.apache.org/servletlistener-component.html。 并且如果您需要在Camel啟動/停止時執行任何自定義邏輯,那么我們為此提供了一個API,即CamelContextLifecycle接口。 Camel文檔中有更多詳細信息和示例。

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

剖析范例

有兩個例子

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

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

servlet-tomcat-示例

大小:5.8 MB

罐子:19

所載課程:4507

當前堆大小:10 MB

servlet-tomcat-no-spring-example

大小:2.9 MB

罐子:10

所載課程:3698

當前堆大小:8 MB

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

備注

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

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

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

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。