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应用程序相关推荐
- 使用Hibernate和Spring构建Java Web应用程序
这篇文章将展示如何在Spring环境中使用带有Hibernate ORM的MYSQL DB创建学生注册应用程序. 这是一个简单的应用程序,旨在在注册过程中从用户收集输入详细信息,将这些详细信息保存在M ...
- 使用MyBatis和Spring构建Java Web应用程序
这篇文章将展示如何在Spring环境中使用带有MyBatis框架的MYSQL DB创建学生注册应用程序. 这是一个简单的应用程序,旨在在注册期间从用户收集输入详细信息,将详细信息保存在MYSQL DB ...
- 使用Java和Spring构建现代Web应用程序
使用Spring Framework创建Java Web应用程序从未如此简单. 如果您已经熟悉Java并且几乎没有创建Web应用程序的经验,或者如果您担心所有很酷的孩子都放弃Java取而代之的是Rub ...
- 带有Jersey和Spring的RESTful Web应用程序
几个月前,我们的任务是创建一个API,以向第三方开发人员公开我们系统中的某些功能. 我们选择将这些功能公开为一系列REST Web服务. 我开始使用Jersey ,它是JSR 311 (用于Restf ...
- camel.js_Camel 2.11 –没有Spring的Camel Web应用程序
camel.js 在撰写本文时,我们刚刚向即将到来的Apache Camel 2.11添加了一个新组件,该组件允许使用Camel运行Web应用程序,而不必依赖Spring Framework来加速Ca ...
- 使用Spring 3引导Web应用程序
1.概述 这是关于使用Spring 3.1和基于Java的配置来建立RESTfull Web应用程序的系列教程的第一篇. 本文将重点介绍如何引导Web应用程序 ,讨论如何从XML过渡到Java,而不必 ...
- 操作方法:具有多个Mongo存储库和Kotlin的Spring Boot 2 Web应用程序
首先,免责声明:如果您正在编写微服务 (每个人现在都对吗?)并希望它是惯用的 ,那么通常不会在其中使用几个不同的数据源. 图片取自Pixabay© https: //pixabay.com/illus ...
- 将Wiremock集成到Spring Boot Java Web应用程序中以模拟外部依赖关系
介绍 WireMock是用于基于HTTP的API的模拟服务器. 有些人可能会将其视为服务虚拟化工具或模拟服务器. 它使您能够存根所需的API或其他外部依赖项,以加快本地开发速度. 它支持测试真实API ...
- 使用Spring的Hibernate构建Java Web应用程序
这篇文章将展示如何在Spring环境中使用带有Hibernate ORM的MYSQL DB创建学生注册应用程序. 这是一个简单的应用程序,旨在在注册期间从用户收集输入详细信息,将详细信息保存在MYSQ ...
最新文章
- 苹果系统下如何粘贴复制?
- 闲话网名之“jrfly331”
- 【原创】概率DP总结 by kuangbin
- iextensionunit类_Java ICompilationUnit.reconcile方法代码示例
- php表格之间设置间隔,html表格如何设置间距
- Sql 函数大全 (更新中...由难到简
- './mysql-bin.index' not found (Errcode: 13) 的解决方法
- Javascript高级程序设计第二版第七章匿名函数--笔记
- Java Code Examples for org.apache.ibatis.annotations.Insert
- 聚类 | Map-Equation多级网络聚类模型——InfoMap
- 【GPT-3】千呼万唤始出来——GPT-3终于开源!
- 万年历c语言 输出单月,求帮忙差错,打印万年历,输入某年某月,打印该月日历...
- Java可视化编程【JFormDesigner安装教程】
- 南京大学信号与系统851考研上岸经验分享
- 如何在腾讯云学生服务器搭建个人网站——配置web开发环境详细步骤
- 十年MFC经历认识的Microsoft技术
- Ubuntu18.04搭建源码搜索引擎Opengrok
- 解决java编译错误( 程序包javax.servlet不存在javax.servlet.*)
- ensp 模拟器配置无线网络
- 嵌入式培训经验分享——C语言小项目(五子棋)
热门文章
- 在eclipse中创建maven项目错误的解决方法:Could not resolve archetype org.apache.maven.archetypes:maven-archetype-qu
- ReviewForJob——二叉堆优先队列的实现(三种堆节点类型——int + struct HeapNode + struct HeapNode*)
- ReviewForJob——快速排序(基于插入排序)+快速选择(快速排序变体)
- Spring4.2.6+SpringMVC4.2.6+MyBatis3.4.0 整合
- SpringMVC 参数校验
- 单列集合List的实现类
- java观察者设计模式_Java中的观察者设计模式
- jpa执行sql脚本_JPA persistence.xml SQL脚本定义
- 动态代码生成 静态代码生成_将速度提升到自己的个人代码生成器中
- javafx css_JavaFX缺少的功能调查:CSS