现代教育网站开发项目的研究,如何创建一个网络平台,南京酒店网站制作,云主机玩游戏如何在尽可能短的时间内使准备就绪的Java应用程序投入生产#xff1f; 我不是一个早起的人#xff0c;所以有时需要一些时间才能启动“所有系统”提示。直到不久之前#xff0c;这对于Java应用程序来说都是正确的#xff0c;但是与发明贪睡功能不同闹钟#xff0c;我们将在… 如何在尽可能短的时间内使准备就绪的Java应用程序投入生产 我不是一个早起的人所以有时需要一些时间才能启动“所有系统”提示。直到不久之前这对于Java应用程序来说都是正确的但是与发明贪睡功能不同闹钟我们将在这里讨论的解决方案实际上更有意义。 借助DropwizardSpring BootGroovy的Grails和Scala的Play等现代开源框架 您可以在几分钟内从头开始构建可用于生产环境的应用程序。 即使您不是早起的人。 即使您不喜欢巫师帽 。 在本文中我们将讨论Dropwizard和Spring Boot与基于Java的轻量级框架的异同。 新话题Java的引导Dropwizard与Spring启动http://t.co/5QtUj7eoPc pic.twitter.com/QPoOt1ztOu — Takipitakipid 2015年3月2日 权衡选择自由与速度需求 无论使用哪种框架都牺牲了一些选择自由因为Dropwizard和Spring boot都具有很高的判断力并且坚信约定优于配置。 有多强 通过并行比较您会发现我们已经进行了比较检查了每个第三方添加到组合中的第三方库的不同风格。 生产级应用程序需要的大多数如果不是全部核心功能都是现成的或可以集成使用。 这种牺牲的好处是速度尽管有时玩弄新库并自定义您自己的完美环境很有趣。 当您需要快速起步并开始滚动时最好委托这些决策并摆脱随之而来的复杂性。 这并非完全是蓝色药丸还是红色药丸的场景当您启动并运行时如果走得更远您很有可能能够根据需要进行自定义和调整。 现在只需将您最喜欢的构建工具无论是Gradle还是Maven 定向到Dropwizard和Spring Boot 就可以了。 让我们深入研究并发现每个框架的哪些方面将使您陷入困境以及在哪些方面可以变得更加灵活。 剧透警报我们在塔基皮Takipi面临类似的困境 因此决定与Dropwizard一起为企业提供塔基皮Takipi的内部风味。 但是曾经被视为Dropwizard的默认也是唯一的选择的情况导致我们打破了Spring引导和用尽XML配置的偏见。 Dropwizard与Spring Boot谁拥有您的后端 生产级应用程序依赖于许多组件并且每个框架都为我们做出了选择。 在此表中所有放置RESTful Web应用程序的选择武器都放置在此表中其中左上角有Dropwizard上面有向导帽右上角是Spring Boot绿色短裤。 核心的现成库和附加组件由颜色分隔Spring的内部依赖项标记为白色。 Dropwizard与Spring Boot3rd Party库 好的现在我们对土地有了更好的了解让我们看看这实际上告诉了我们什么。 我还建议您仔细看看每个框架因为所有内容都是开源的可以在GitHub上随心所欲地浏览这是Dropwizard的源文件这里是Spring Boot 。 Spring依赖 就像在罐子上说的那样Spring Boot专注于Spring应用程序。 因此如果您想进入Spring生态系统或已经熟悉它并需要建立一个快速的应用程序那么这可能是您要走的路。 REST支持和DevOps功能我们即将讨论的指标和运行状况检查基于Spring Framework的核心而DropWizard将其REST支持与Jersey一起使用 。 尽管在其他方面更灵活但这几乎是Spring Boot锁定您的唯一方面。 HTTP服务器 在这里我们可以看到Spring Boot如何变得更加灵活。 Dropwizard采用的约定优于配置方法它比Spring Boot更为极端并且完全基于Jetty而Spring Boot默认采用Tomcat的可嵌入版本但如果您偏爱Jetty甚至是RedHat的Undertow则可以避免其他麻烦。 记录中 这是关于配置问题的相同约定的另一个示例Dropwizard在v0.4中从log4j切换到Logback。 我猜测log4j2的最新GA版本可能会对此进行更改。 在Spring Boot的前面如果需要记录我们需要在Logbacklog4j和log4j2之间进行选择。 顺便说一句如果您使用的是Logback则一定要检查一下我们运行以比较不同日志记录方法的性能的基准。 依赖注入 两种框架之间的主要区别是依赖注入支持。 众所周知Spring的核心是内置于依赖注入支持中的而Dropwizard并不是开箱即用的您必须选择一种支持它的社区集成。 一个流行的选择是使用Google的Guice 并使用社区 主导的 集成之一 。 测试– Fest vs. Hamcrest 这两个框架都有一个特殊的模块用于测试 dropwizard测试和spring-boot-starter-test 包括JUnit和Mockito依赖项。 Spring Boot自然也使用Spring Test这里的主要区别在于匹配对象的形状检查不同的对象是否匹配相同的模式。 Dropwizard支持FEST匹配器 已不再开发而Spring Boot与Hamcrest一起使用。 生产调试 与在开发阶段进行测试的内置解决方案不同在将应用程序部署到生产环境中时无法保证一切都会按计划进行。 特别是当您快速部署代码时 。 有了Takipi您就可以知道哪些错误构成最高风险将其划分优先级并获得有关如何修复它们的可行信息。 没有操作就没有开发 为了获得生产级应用程序的称号每个框架的核心功能都包括对指标运行状况检查和任务的支持。 简而言之度量标准使您可以跟踪统计信息例如内存使用情况以及执行代码区域所需的时间。 健康检查是一种随时随地进行测试并回答问题的方法例如此插座是否仍然打开 还是数据库连接仍然存在 借助任务支持您可以安排维护操作或定期任务。 Dropwizard指标库本身就已广受欢迎您可以将其添加到任何项目中甚至可以将其与Spring Boot的指标一起使用以深入了解代码在生产中的作用。 一项很酷的功能是向Graphite或Ganglia等服务报告并提供20多种可用的集成 。 运行状况检查还与Dropwizard指标一起提供并且任务是作为框架的一部分实施的。 在Spring Boot前端该框架使用Spring的核心功能来支持其Ops角度。 关于无容器的注意事项 无容器的Java HTTP服务器是导致创建Dropwizard的关键驱动程序几年后又由Spring Boot引发。 与独立容器不同您可以像在应用程序中添加任何其他库依赖项一样简单地添加HTTP服务器。 直观易于更新而且您无需处理任何WAR文件。 XML配置保持最少。 关于故事的部署结束Dropwizard和Spring Boot都使用胖JAR将所有JAR及其依赖项打包到一个文件中从而使使用快速单线部署更加容易。 社区和发布周期 Dropwizard最初由Coda Hale于2011年底在Yammer时代发布。 从那时起它通过了大约20个版本目前为0.7.1作为现代Java应用程序的入门指南它获得了社区的大力支持。 不利的一面是每隔几个月发布一次之后新版本就会放慢速度。 在即将到来的0.8版本中我们预计将主要看到第三方版本的更新和较小的修复。 Dropwizard当前支持Java 7及更高版本要在Java 8上使用它您可以签出此部分更新以享受其一些好处和新功能或者如果您出于某种原因不喜欢joda-time。 今天您可以看到大部分来自Jochen Schalanda的提交 其中包括160多个个人贡献者和数十个社区支持的集成例如Datasift的dropwizard-extra 。 在可用的Dropwizard集成中 还 包括 Spring支持。 您绝对应该检查的另一件事是此处的官方用户组。 随着Pivotal支持的Spring Boot在2014年以1.0版本加入游戏几乎可以想到的任何第3方库都有40多种官方集成 Starter POM 。 这包括从日志记录到社交API集成的所有内容。 JHipster是一个值得一提的新Spring Boot项目它是Spring Boot和Angular的Yeoman生成器。 最重要的是可以说Dropwizard拥有一个更大的社区并且Spring Boot拥有更好的官方和结构化支持以及Spring的现有用户群。 结论 如果您希望进入Spring生态系统那么选择Spring Boot可能是一个明智的选择。 它不仅是引导RESTful Java应用程序的一种方式而且还充当与数十个服务集成的Spring的网关。 也许这里真正的问题是您是否应该开始寻找/回到Spring 这可能是另一个完全可以讨论的话题 。 否则Dropwizard将最适合您的需求。 这里的第二个问题是您如何依赖于依赖注入 如果选择Guice那么使用Dropwizard并使用其中一种社区集成将是一个简单的解决方案而不是使用Spring依赖项注入方式。 最后但并非最不重要的一点是看看并排比较如果您要从头开始构建应用程序那么哪个框架可以做出选择 请记住默认选择因为花费更多的时间配置这种引导类型会背叛其原因。 我希望您发现这种比较很有用并且很高兴听到您对此的评论以及促使您选择其中一项的因素。 翻译自: https://www.javacodegeeks.com/2015/03/java-bootstrap-dropwizard-vs-spring-boot.html