当前位置: 首页 > news >正文

做推广网站的去哪能买到有效资料小程序就是做网站

做推广网站的去哪能买到有效资料,小程序就是做网站,手机制作ppt哪种软件好,学生个人网页制作html源代码Apache Camel是一个非常有用的库#xff0c;可以帮助您处理来自许多不同来源的事件或消息。 您可以通过许多不同的协议#xff08;例如在VM#xff0c;HTTP#xff0c;FTP#xff0c;JMS甚至DIRECTORY / FILE之间#xff09;移动这些消息#xff0c;但仍使处理代码不受传… Apache Camel是一个非常有用的库可以帮助您处理来自许多不同来源的事件或消息。 您可以通过许多不同的协议例如在VMHTTPFTPJMS甚至DIRECTORY / FILE之间移动这些消息但仍使处理代码不受传输逻辑的影响。 这样您就可以专注于摘要消息的内容。 在这里我将提供一个教程介绍如何使用Java而不是Groovy来开始使用Apache Camel。 让我们首先创建一个Maven项目pom.xml文件。 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0http://maven.apache.org/maven-v4_0_0.xsdmodelVersion4.0.0/modelVersiongroupIdcamel-spring-demo/groupIdartifactIdcamel-spring-demo/artifactIdversion1.0-SNAPSHOT/versionpackagingjar/packagingpropertiesproject.build.sourceEncodingUTF-8/project.build.sourceEncodingcamel.version2.11.1/camel.version/propertiesdependenciesdependencygroupIdorg.apache.camel/groupIdartifactIdcamel-core/artifactIdversion${camel.version}/version/dependencydependencygroupIdorg.slf4j/groupIdartifactIdslf4j-simple/artifactIdversion1.7.5/version/dependency/dependencies/project 我们将仅探索camel-core 它实际上包含许多您可能会使用的有用组件。 同样出于记录目的我添加了一个slf4j-simple作为记录器实现因此我们可能会在控制台上看到输出。 接下来您只需要一个类即可构造Route 。 Route就像是对骆驼的指令定义关于如何将消息从一个点移动到另一个点。 我们将创建src/main/java/camelcoredemo/TimerRouteBuilder.java文件该文件将src/main/java/camelcoredemo/TimerRouteBuilder.java生成一次计时器消息然后传递给仅对其进行记录的处理器。 package camelcoredemo;import org.slf4j.*; import org.apache.camel.*; import org.apache.camel.builder.*;public class TimerRouteBuilder extends RouteBuilder {static Logger LOG LoggerFactory.getLogger(TimerRouteBuilder.class);public void configure() {from(timer://timer1?period1000).process(new Processor() {public void process(Exchange msg) {LOG.info(Processing {}, msg);}});} } 这就是您开始所需要的。 现在您可以构建并运行这个简单的演示。 bash mvn compile bash mvn exec:java -Dexec.mainClassorg.apache.camel.main.Main -Dexec.args-r camelcoredemo.TimerRouteBuilder 请注意我们甚至没有编写Java 主类而只是使用org.apache.camel.main.Main选项来接受RouteBuilder类名作为参数。 然后它将自动加载并创建路线。 控制 启动Camel时它将创建一个CamelContext对象该对象包含有关如何运行它的许多信息包括我们创建的Route的定义。 现在如果您想对此CamelContext进行更多控制则需要编写自己的Main类。 我会在这里给你看一个简单的例子。 package camelcoredemo;import org.slf4j.*; import org.apache.camel.*; import org.apache.camel.impl.*; import org.apache.camel.builder.*;public class TimerMain {static Logger LOG LoggerFactory.getLogger(TimerMain.class);public static void main(String[] args) throws Exception {new TimerMain().run();}void run() throws Exception {final CamelContext camelContext new DefaultCamelContext();camelContext.addRoutes(createRouteBuilder());camelContext.setTracing(true);camelContext.start();Runtime.getRuntime().addShutdownHook(new Thread() {public void run() {try {camelContext.stop();} catch (Exception e) {throw new RuntimeException(e);}}});waitForStop();}RouteBuilder createRouteBuilder() {return new TimerRouteBuilder();}void waitForStop() {while (true) {try {Thread.sleep(Long.MAX_VALUE);} catch (InterruptedException e) {break;}}} } 如您所见我们在createRouteBuilder()方法中重新使用了现有的TimerRouteBuilder类。 现在我们的Main类可以完全控制何时创建启动和停止CamelContext 。 此上下文使您可以控制如何全局配置骆驼而不是在Route级别。 javadoc链接提供了您可以探索的所有setter方法。 注意我们还需要在Main类中提供一些设置代码。 首先我们需要处理正常关闭因此我们添加了一个Java关闭挂钩来调用上下文stop() 。 其次我们需要在上下文启动后添加一个线程块。 原因是CamelContext#start()方法是非阻塞的 如果您在启动后没有阻塞Main线程那么它将仅在它之后立即退出这将没有太大用处。 您想要将Camel作为服务例如服务器运行直到您明确按CTRLC终止该过程为止。 改进 如果您不想处理上面的许多Main类设置代码则可以简单地扩展camel-core intead提供的org.apache.camel.main.Main类。 piggy带这个类您将不仅没有自动设置上下文的功能还可以获得所有其他命令行功能例如控制运行该进程的时间启用跟踪加载自定义路由类等。 重构前面的示例如下所示。 package camelcoredemo;import org.slf4j.*; import org.apache.camel.builder.*; import org.apache.camel.main.Main;public class TimerMain2 extends Main {static Logger LOG LoggerFactory.getLogger(TimerMain2.class);public static void main(String[] args) throws Exception {TimerMain2 main new TimerMain2();main.enableHangupSupport();main.addRouteBuilder(createRouteBuilder());main.run(args);}static RouteBuilder createRouteBuilder() {return new TimerRouteBuilder();} } 现在我们的TimerMain2变得更短了您可以尝试一下它的功能应该与以前相同。 bash mvn compile bash mvn exec:java -Dexec.mainClasscamelcoredemo.TimerMain2 -Dexec.args-t 注意我们给了-t选项它将转储Route跟踪。 使用-h 您将看到所有可用的选项。 将豆添加到骆驼 在上面的TimerRouteBuilder示例中我们即时创建了一个Processor 。 现在如果您要将几个不同的Processor组合在一起那么将噪音降至最低会更好。 Camel允许您通过在其注册表空间中注册处理Bean来做到这一点然后您就可以在路由中将它们作为bean组件进行引用。 这是将上述示例转换为Bean处理的方法。 package camelcoredemo;import org.slf4j.*; import org.apache.camel.*; import org.apache.camel.builder.*; import org.apache.camel.main.Main;public class TimerBeansMain extends Main {static Logger LOG LoggerFactory.getLogger(TimerBeansMain.class);public static void main(String[] args) throws Exception {TimerBeansMain main new TimerBeansMain();main.enableHangupSupport();main.bind(processByBean1, new Bean1());main.bind(processAgainByBean2, new Bean2());main.addRouteBuilder(createRouteBuilder());main.run(args);}static RouteBuilder createRouteBuilder() {return new RouteBuilder() {public void configure() {from(timer://timer1?period1000).to(bean:processByBean1).to(bean:processAgainByBean2);}};}// Processor beansstatic class Bean1 implements Processor {public void process(Exchange msg) {LOG.info(First process {}, msg);}}static class Bean2 implements Processor {public void process(Exchange msg) {LOG.info(Second process {}, msg);}} } 现在您看到我的Route非常狭窄没有杂音 而且我已经将处理代码重构为各个类。 当您编写更复杂的Route来解决业务逻辑时这可以促进更好的代码管理和测试。 它使您可以构建类似于可重用POJO bean的积木。 除了仅处理bean外Camel还将此注册表空间用于许多其他服务。 例如您可以使用其他功能和/或配置自定义许多其他组件端点。 或者诸如线程池策略实现替换之类的东西。 上面示例中的Route是使用所谓的Java DSL构建的。 该路线可读性强但是您将获得完整的IDE支持以浏览可用于该路线的所有方法。 我希望本文能帮助您快速开始骑骆驼之旅。 除了提到的timer组件之外 camel-core还从其核心jar中附带了以下组件。 豆成分 浏览组件 数据集组件 直接成分 文件组件 日志组件 模拟组件 属性组件 色达成分 测试组件 计时器组件 存根组件 验证器组件 vm组件 xslt组件 玩得开心 参考 A程序员杂志博客上的JCG合作伙伴 Zemian Deng从Java入门使用Apache Camel 。 翻译自: https://www.javacodegeeks.com/2013/08/getting-started-with-apache-camel-using-java.html
http://www.zqtcl.cn/news/684791/

相关文章:

  • 网站首页的head标签内做网站要学的教程
  • 网页设计教学网站江西省建设监督网站
  • 网站建设与发布需要什么提供网站制作公司哪家好
  • 西宁市城市道路建设规划网站探测器 东莞网站建设
  • 旅游村庄网站建设方案小程序制作价格
  • 网站地图制作软件机械加工网免费铺货
  • 网站上线有什么线上活动可以做龙华建网站多少钱
  • 门户网站系统开发建设电脑优化
  • 公司建网站多少钱一个月服务佳的广州网站建设
  • 怎么创建网站建设徐州网站建设要多少钱
  • 微网站功能列表菜市场做建筑设计图库的网站设计
  • 制作网站支付方式定制网站开发哪里好
  • 常州网络网站建设行情软件app网站大全下载
  • 出台网站集约化建设通知彩票网站开发的
  • 怎样创建个人的网站怎么学做网站
  • 小江高端网站建设网站建设中可能升级
  • 网站建设的原则有哪些内容wordpress的底部版权
  • 一个网站建立团队大概要多少钱大连专业网站建设
  • 宁波网站公司相册插件wordpress
  • 科技网站域名大型网站开发团队
  • 温岭建设规划局网站注册新公司网上怎么核名
  • dede网站移动端怎么做golang 网站开发 开源
  • 织梦网站导航固定沈阳男科医院在线咨询免费
  • 四川华鸿建设有限公司网站网站建设需求文案
  • 汕头东莞网站建设怎么制作微信小程序app
  • 网站建设预算方案模板怎么做网络推广网站
  • 顺义网站开发wordpress内容主题模板下载
  • 永康做网站的化工网站模板免费下载
  • 潍坊高密网站建设如何做网页推广
  • 杭州房产网站建设wordpress 替换谷歌字体