javascript
Camel 2.11 –没有Spring的Camel Web应用程序
在撰寫本文時,我們剛剛向即將到來的Apache Camel 2.11添加了一個新組件,該組件允許使用Camel運行Web應(yīng)用程序,而不必依賴Spring Framework來加速Camel。 或與此相關(guān)的任何其他第三方框架。
有點as愧地說,在2013年,我們要在Apache Camel中開箱即用提供此功能有點晚了。
在支持Servlet 3.0規(guī)范的現(xiàn)代Web容器中。 您可以使用新的@WebListener注釋以編程方式引導(dǎo)代碼。 但是即使如此,仍然需要完成工作,因為您將需要設(shè)置和配置Camel,并確保在停止Web應(yīng)用程序時取消注冊和停止資源。
我還沒有找到一種使用@WebListener并允許對框架(例如Apache Camel)進行外部配置的巧妙方法。 我真的不想硬編碼我的配置,也不必發(fā)明自己的加載外部配置和配置應(yīng)用程序的方式。 有人知道解決此問題的方法嗎?
無論如何,我們還想要一種適用于基于老式Servlet 2.x的容器的解決方案。 有很多人在那里奔跑。 即便如此,帶有web.xml文件的舊式配置在較新的Servlet 3.0容器中也同樣有效。 因此,我們需要一種適合兩個世界的即用型解決方案。
展示的例子
我們在Apache Camel上有許多示例,其中一個是簡單的Web應(yīng)用程序,可以將其作為.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進行增強處理,并使用上下文初始化參數(shù)作為其配置。 該上下文偵聽器具有大量配置,因此您可以輕松地根據(jù)需要配置Camel。 這些選項在Camel文檔中列出:http://camel.apache.org/servletlistener-component.html。 并且如果您需要在Camel啟動/停止時執(zhí)行任何自定義邏輯,那么我們?yōu)榇颂峁┝艘粋€API,即CamelContextLifecycle接口。 Camel文檔中有更多詳細信息和示例。
為了了解這一點,我建議閱讀此博客后,查看新示例以及camel-servletlistener組件的文檔。
剖析范例
有兩個例子
- 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的全新安裝時,我們可以充分了解兩者之間的差異。
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個JAR和3MB。 最好避免加載1000個類的代碼。
備注
我只想強調(diào)一下,這個新的camel-servletlistener組件的目標(biāo)是使人們能夠輕松地在任何Web容器中引導(dǎo)其Camel應(yīng)用程序,而無需綁定到任何特定的第三方框架(例如Spring)。 Apache Camel項目旨在保持中立和不可知論。 允許人們以任何方式和選擇的容器來運行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)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 凌晨三四点梦见蛇 凌晨三四点梦见蛇的征兆
- 下一篇: 小心驶得万年船什么意思 小心驶得万年船的