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

asp.net 微网站开发教程无版权图片做网站

asp.net 微网站开发教程,无版权图片做网站,内部网站 建设方案,网站推广 济南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/205581/

相关文章:

  • 太原网站关键词优化常州企业网站建设公司
  • 网站开发流程详细步骤不用淘宝客api如何做网站
  • xuzhou网站制作wordpress漫画小说
  • 公司建设网站的通知书百度经验官网入口
  • 如何做产品网站的推广静态网页制作总结
  • 网站建设有哪些知识点wordpress 静态
  • 买完阿里云域名如何做网站优化软件排行榜
  • 三五互联网站建设怎么样公司网上推广平台
  • 做网站网页的公司机械网站建设公司推荐
  • 影楼网站制作网站集群建设申请
  • 国内免费的短视频素材网站自己做网站的方法
  • jsp网站建设代码电子印章在线制作生成器免费
  • 叫别人做网站后怎么更改密码一手楼房可以做哪个网站
  • 网站上的图分辨率做多少网站栏目建设存在的问题
  • 山东省建设部网站官网php 开发手机网站建设
  • 新建的网站怎么做seo优化国内最新新闻事件今天
  • ss永久免费服务器河南网站建设优化技术
  • wordpress首页源码深圳seo关键词优化外包公司
  • 网站备案换公司吗网站开发 东莞
  • 济南网站营销彩票网站建设 极云
  • 园区门户网站建设方案著名网站用什么语言做后台
  • 有经验的邵阳网站建设四川省城乡建设网查询
  • 网站打不开怎么做天猫店购买交易平台
  • 什么专业是做网站做网站设分辨率
  • 供水开发建设公司网站建筑案例网站有哪些
  • 建站平台备案wordpress 论坛
  • 朗域装饰公司电话中卫网站推广优化
  • 公司用dw做网站吗做外贸翻译用那个网站
  • 希尔顿酒店网站建设的优点网站建设添加汉语
  • 贵阳利于优化的网站wordpress模糊搜索插件