{"id":37700,"date":"2015-03-04T16:00:07","date_gmt":"2015-03-04T14:00:07","guid":{"rendered":"http:\/\/www.javacodegeeks.com\/?p=37700"},"modified":"2015-03-03T09:16:26","modified_gmt":"2015-03-03T07:16:26","slug":"java-bootstrap-dropwizard-vs-spring-boot","status":"publish","type":"post","link":"https:\/\/www.javacodegeeks.com\/2015\/03\/java-bootstrap-dropwizard-vs-spring-boot.html","title":{"rendered":"Java Bootstrap: Dropwizard vs. Spring Boot"},"content":{"rendered":"<h2>How to get a production ready Java application off the ground in the shortest time possible?<\/h2>\n<p><a href=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2015\/03\/dropwizard.vs_.spring.boot_.jpg\"><img decoding=\"async\" class=\"aligncenter size-medium wp-image-37722\" src=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2015\/03\/dropwizard.vs_.spring.boot_-300x136.jpg\" alt=\"dropwizard.vs_.spring.boot_\" width=\"300\" height=\"136\" srcset=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2015\/03\/dropwizard.vs_.spring.boot_-300x136.jpg 300w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2015\/03\/dropwizard.vs_.spring.boot_.jpg 765w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>I\u2019m not a morning person, so sometimes it takes a while for the \u201call systems are go\u201d cue to kick in. This used to be true for Java applications until not too long ago, but unlike the invention of the snooze function on the alarm clock, the solution we\u2019re going to discuss here actually makes much better sense. With modern open source frameworks like Dropwizard, Spring Boot, Groovy\u2019s Grails and Scala\u2019s Play! you\u2019re able to build a production ready application from scratch in a matter of minutes. Even if you\u2019re not a morning person. And even if you\u2019re not fond of <a href=\"http:\/\/i0.kym-cdn.com\/photos\/images\/original\/000\/424\/652\/fc1.png\">wizard hats<\/a>. In this post we\u2019ll discuss the similarities and differences of the lightweight Java based frameworks with Dropwizard and Spring Boot.<\/p>\n<blockquote class=\"twitter-tweet\" lang=\"en\" data-cards=\"hidden\">\n<p>New Post: Java Bootstrap: Dropwizard vs. Spring Boot <a href=\"http:\/\/t.co\/5QtUj7eoPc\">http:\/\/t.co\/5QtUj7eoPc<\/a> <a href=\"http:\/\/t.co\/QPoOt1ztOu\">pic.twitter.com\/QPoOt1ztOu<\/a><\/p>\n<p>\u2014 Takipi (@takipid) <a href=\"https:\/\/twitter.com\/takipid\/status\/572405872699158528\">March 2, 2015<\/a><\/p>\n<\/blockquote>\n<h2>The Trade-off: Freedom of choice vs. The need for speed<\/h2>\n<p>Either framework you go with, you\u2019re sacrificing some freedom of choice since both Dropwizard and Spring boot are highly opinionated and strongly believe in convention over configuration. How strong? You\u2019ll discover just that in a side by side comparison we\u2019ve done, examining the different flavors of 3rd party libraries that each of them adds to the mix. Most if not all core features a production grade application requires come out of the box or available as integrations.<\/p>\n<p>The upside of this sacrifice is speed, although it\u2019s fun at times to fiddle around with new libraries and customize your own perfect environment. When you need to get something quickly off the ground and start rolling, you\u2019re better off delegating those decisions and getting rid of the complexity that comes with it. It\u2019s not exactly a blue pill vs. red pill scenario: Further down the road when you\u2019re up and running, you will most likely be able to customize and tweak it if needed. Now just\u00a0direct your favorite build tool, be it Gradle or Maven, to <a href=\"http:\/\/dropwizard.io\/getting-started.html\" target=\"_blank\">Dropwizard<\/a> &amp; <a href=\"http:\/\/projects.spring.io\/spring-boot\/\" target=\"_blank\">Spring Boot<\/a> and you\u2019re good to go.<\/p>\n<p>Let\u2019s dig in and discover which aspects of each framework will leave you locked-in and where you can be more flexible.<\/p>\n<p><strong>Spoiler alert:<\/strong> We faced a similar dilemma here at <a href=\"https:\/\/www.takipi.com\/?utm_source=blog&amp;utm_medium=in-post&amp;utm_content=dwsb&amp;utm_campaign=java\">Takipi<\/a> and decided to go with Dropwizard for an on-premise flavor of Takipi for enterprises. But what once could be seen as the default (and only) choice with Dropwizard, led us to break some prejudice we had with Spring boot and exhausting XML configurations.<\/p>\n<h2>Dropwizard vs. Spring Boot: Who\u2019s got your backend?<\/h2>\n<p>A production grade application relies on many components and each framework has made its choices for us. All the weapons of choice to get a RESTful web application off the ground are laid down right here in this table with Dropwizard in the left corner with a wizard hat and Spring Boot in the right corner with the green shorts. The core out-of-the-box libraries and add-ons are separated by color with Spring\u2019s internal dependencies marked in white.<\/p>\n<p><figure id=\"attachment_37723\" aria-describedby=\"caption-attachment-37723\" style=\"width: 800px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2015\/03\/dropwizard.vs_.spring.boot_.libraries.jpg\"><img decoding=\"async\" class=\"size-full wp-image-37723\" src=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2015\/03\/dropwizard.vs_.spring.boot_.libraries.jpg\" alt=\"Dropwizard vs. Spring boot: 3rd party libraries\" width=\"800\" height=\"600\" \/><\/a><figcaption id=\"caption-attachment-37723\" class=\"wp-caption-text\">Dropwizard vs. Spring boot: 3rd party libraries<\/figcaption><\/figure><div style=\"display:inline-block; margin: 15px 0;\"> <div id=\"adngin-JavaCodeGeeks_incontent_video-0\" style=\"display:inline-block;\"><\/div> <\/div><\/p>\n<p>Ok, so now that we have a better view of the land, let\u2019s see what this actually tells us. I\u2019d also recommend taking a closer look at each of the frameworks, since everything is open-source and available for your viewing pleasure right on GitHub: Here are the <a href=\"https:\/\/github.com\/dropwizard\/dropwizard\" target=\"_blank\">Dropwizard<\/a> source files, and here\u2019s <a href=\"https:\/\/github.com\/spring-projects\/spring-boot\" target=\"_blank\">Spring Boot<\/a>.<\/p>\n<h4>Spring Dependencies<\/h4>\n<p>Like it says on the tin, Spring Boot is focused on Spring applications. So if you\u2019d like to get into the Spring ecosystem or already familiar with it and need to set up a quick application, this would probably be the way to go. The REST support, and DevOps features which we\u2019ll talk about soon like metrics and health checks are based on Spring Framework\u2019s core while DropWizard puts its REST support with <a href=\"https:\/\/jersey.java.net\/\" target=\"_blank\">Jersey<\/a>. It\u2019s pretty much the only aspect where Spring Boot leaves you locked-in, although it\u2019s more flexible on other fronts.<\/p>\n<h4>HTTP Server<\/h4>\n<p>Here we can see just how Spring Boot can be more flexible. Dropwizard takes the convention over configuration approach a bit more extreme than Spring Boot and is completely based on Jetty, while Spring Boot takes the embeddable version of Tomcat by default but leaves you a way out if preferer Jetty or even RedHat\u2019s Undertow.<\/p>\n<h4>Logging<\/h4>\n<p>This is another example of the same convention over configuration issue, Dropwizard switched from log4j to Logback in v0.4. I\u2019m guessing that with log4j2\u2019s recent GA release, this might be subject to change. On Spring Boot\u2019s front, we need to make a choice between Logback, log4j and log4j2 if we require logging. By the way, if you\u2019re using Logback, you should definitely check out this benchmark we ran to compare the <a href=\"http:\/\/www.javacodegeeks.com\/2014\/07\/how-to-instantly-improve-your-java-logging-with-7-logback-tweaks.html\" target=\"_blank\">performance of different logging methods<\/a>.<\/p>\n<h4>Dependency Injection<\/h4>\n<p>A main difference between both frameworks is dependency injection support. As some of you know, Spring\u2019s core comes with it\u2019s built in dependency injection support while with Dropwizard this doesn\u2019t come out of the box and you\u2019ll have to choose one of the community integrations that support it. A popular choice would be going with <a href=\"https:\/\/github.com\/google\/guice\" target=\"_blank\">Google\u2019s Guice<\/a>, and using one of the <a href=\"https:\/\/github.com\/jaredstehler\/dropwizard-guice\" target=\"_blank\">community<\/a> <a href=\"https:\/\/github.com\/xvik\/dropwizard-guicey\" target=\"_blank\">led<\/a> <a href=\"https:\/\/github.com\/HubSpot\/dropwizard-guice\" target=\"_blank\">integrations<\/a>.<\/p>\n<h4>Testing \u2013 Fest vs. Hamcrest<\/h4>\n<p>Both frameworks have a special module for testing, <a href=\"https:\/\/dropwizard.github.io\/dropwizard\/manual\/testing.html\" target=\"_blank\">dropwizard-testing<\/a> and <a href=\"http:\/\/docs.spring.io\/spring-boot\/docs\/current\/reference\/html\/boot-features-testing.html\" target=\"_blank\">spring-boot-starter-test<\/a>, including JUnit and Mockito dependencies. Spring Boot naturally uses Spring Test as well and the main difference here comes in the shape of matcher objects, checking if different objects match the same pattern. Dropwizard favors <a href=\"https:\/\/code.google.com\/p\/fest\/\" target=\"_blank\">FEST matchers<\/a> (which are no longer developed) and Spring Boot goes with <a href=\"http:\/\/hamcrest.org\/\" target=\"_blank\">Hamcrest<\/a>.<\/p>\n<h4>Debugging in Production<\/h4>\n<p>Unlike built in solutions for testing during the development stage, when your application is deployed in production there\u2019s no guaranty that everything will go as planned. Especially when you <a href=\"http:\/\/blog.takipi.com\/deploying-code-fast-heres-how-to-tell-if-you-broke-something\/?utm_source=blog&amp;utm_medium=in-post&amp;utm_content=dwsb&amp;utm_campaign=java\" target=\"_blank\">deploy code fast<\/a>.\u00a0With Takipi in the mix, you\u2019re able to know which errors pose the highest risk, prioritize them, and receive actionable information on how to fix them.<\/p>\n<h4>No Dev Without Ops<\/h4>\n<p>To earn the title of a production grade application, each framework\u2019s core features include support for metrics, health checks and tasks. In a nutshell, metrics allow you to keep track of stats like memory usage and timing of how long does it take to execute areas in your code. Health checks are a way of testing on the go and answering questions like, is this socket still open? Or is the database connection alive? And with tasks support you can schedule maintenance operations or periodic tasks.<\/p>\n<p>The <a href=\"https:\/\/dropwizard.github.io\/metrics\/\" target=\"_blank\">Dropwizard metrics<\/a> library gained some popularity on it\u2019s own and you can add it to any project, or even use it with Spring Boot\u2019s metrics, to gain insight into what your code does in production. One cool feature is reporting to services like Graphite or Ganglia and some 20+ available <a href=\"https:\/\/github.com\/dropwizard\/metrics\/blob\/master\/docs\/source\/manual\/third-party.rst\" target=\"_blank\">integrations<\/a>. Health checks also come with Dropwizard metrics and tasks are implemented as part of the framework. On the Spring Boot front, the framework uses Spring\u2019s core features to support its Ops angle.<\/p>\n<h2>A note on going container-less<\/h2>\n<p>The key driver that enabled the creation of Dropwizard, followed by Spring Boot a few years later, are container-less Java HTTP servers. Unlike a standalone container, you can simply add an HTTP server like any other library dependency in your app. Straightforward, easy to update, and you don\u2019t have to deal with any <a href=\"http:\/\/cdn.memegenerator.net\/instances\/400x\/25478835.jpg\">WAR<\/a> files whatsoever. XML configurations are kept to a minimum. As to the deployment end of the story, both Dropwizard and Spring Boot make use of fat JARs to pack all JARs and their dependencies in one file, making it easier to deploy using a quick one-liner.<\/p>\n<h4>Community and Release Cycle<\/h4>\n<p>Dropwizard was initially released by <a href=\"https:\/\/twitter.com\/coda\" target=\"_blank\">Coda Hale<\/a> in late 2011 back in his days at Yammer. Since then it passed some 20 versions, and currently stands on 0.7.1, enjoying great community support as the go-to guide for modern Java applications. On the downside, new releases are slowing down, after they used to come out every couple of months. In the upcoming 0.8 version we\u2019re expecting to mostly see 3rd party version updates and minor fixes. Dropwizard currently supports Java 7 and above, to use it on Java 8 you can check out this partial <a href=\"https:\/\/github.com\/dropwizard\/dropwizard-java8\" target=\"_blank\">update<\/a> to enjoy some of its benefits and new features (or if you just don\u2019t like joda-time for some reason).<\/p>\n<p>Today you can see mostly commits from <a href=\"https:\/\/www.linkedin.com\/in\/jschalanda\" target=\"_blank\">Jochen Schalanda<\/a> with over 160 individual contributors and tens of community supported integrations, like <a href=\"https:\/\/github.com\/datasift\/dropwizard-extra\" target=\"_blank\">dropwizard-extra<\/a> from Datasift. Of the available Dropwizard integrations, Spring support is <a href=\"https:\/\/github.com\/hmsonline\/dropwizard-spring\" target=\"_blank\">also<\/a> <a href=\"https:\/\/github.com\/nhuray\/dropwizard-spring\" target=\"_blank\">included<\/a>. One more thing you should definitely check out is the official user group <a href=\"https:\/\/groups.google.com\/forum\/#!forum\/dropwizard-user\" target=\"_blank\">right here<\/a>.<\/p>\n<p>With Pivotal backed Spring Boot joining the game with a 1.0 in 2014, there are over 40 official integrations (<a href=\"https:\/\/github.com\/spring-projects\/spring-boot\/tree\/master\/spring-boot-starters\" target=\"_blank\">Starter POMs<\/a>) to pretty much any 3rd party library you can think of. This includes anything from logging to social API integrations. One new Spring Boot project worth mentioning here is <a href=\"http:\/\/jhipster.github.io\/\" target=\"_blank\">JHipster<\/a>, a Yeoman generator for Spring Boot and Angular.<\/p>\n<p>On the bottom line you could say that Dropwizard has a larger community around it and Spring Boot enjoys better official and structured support, together with Spring\u2019s existing user base.<\/p>\n<h2>Conclusion<\/h2>\n<ol>\n<li>If you\u2019re looking to get into the Spring ecosystem, then choosing Spring Boot is probably a no brainer. More than a way to bootstrap a RESTful Java application, it also acts as a gateway to Spring with integrations to tens of services. Maybe the real question here is whether you should start looking \/ go back into Spring? Which could be a whole other subject to <a href=\"https:\/\/plus.google.com\/+aerotwist\/posts\/1QhcnQizuPc\" target=\"_blank\">discuss<\/a>. Otherwise, Dropwizard would suit your needs best.<\/li>\n<li>A second issue here is how dependant are you on dependency injection? If Guice is your choice then going Dropwizard and using one of the community integrations would be an easy fix rather than doing the Spring way of dependency injection.<\/li>\n<li>And last but not least, taking a look at the side-by-side comparison, which framework makes the choices that you would take if you were to build an application from scratch yourself? Keep in mind the default picks since spending even more time configuring this bootstrap kind of betrays its cause.<\/li>\n<\/ol>\n<p>I hope you\u2019ve found this comparison useful and I\u2019d be happy to hear your comments about it and the factors that made you choose one over the other.<\/p>\n<div class=\"attribution\">\n<table>\n<tbody>\n<tr>\n<td><span class=\"reference\">Reference: <\/span><\/td>\n<td><a href=\"http:\/\/blog.takipi.com\/java-bootstrap-dropwizard-vs-spring-boot\/\">Java Bootstrap: Dropwizard vs. Spring Boot<\/a> from our <a href=\"http:\/\/www.javacodegeeks.com\/jcg\/\">JCG partner<\/a> Alex Zhitnitsky at the <a href=\"http:\/\/blog.takipi.com\/\">Takipi <\/a> blog.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>How to get a production ready Java application off the ground in the shortest time possible? I\u2019m not a morning person, so sometimes it takes a while for the \u201call systems are go\u201d cue to kick in. This used to be true for Java applications until not too long ago, but unlike the invention of &hellip;<\/p>\n","protected":false},"author":562,"featured_media":240,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[942,30,854],"class_list":["post-37700","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-enterprise-java","tag-dropwizard","tag-spring","tag-spring-boot"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Java Bootstrap: Dropwizard vs. Spring Boot - Java Code Geeks<\/title>\n<meta name=\"description\" content=\"How to get a production ready Java application off the ground in the shortest time possible? I\u2019m not a morning person, so sometimes it takes a while for\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.javacodegeeks.com\/2015\/03\/java-bootstrap-dropwizard-vs-spring-boot.html\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Java Bootstrap: Dropwizard vs. Spring Boot - Java Code Geeks\" \/>\n<meta property=\"og:description\" content=\"How to get a production ready Java application off the ground in the shortest time possible? I\u2019m not a morning person, so sometimes it takes a while for\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.javacodegeeks.com\/2015\/03\/java-bootstrap-dropwizard-vs-spring-boot.html\" \/>\n<meta property=\"og:site_name\" content=\"Java Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/javacodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2015-03-04T14:00:07+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/spring-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Alex Zhitnitsky\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@overopshq\" \/>\n<meta name=\"twitter:site\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Alex Zhitnitsky\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2015\\\/03\\\/java-bootstrap-dropwizard-vs-spring-boot.html#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2015\\\/03\\\/java-bootstrap-dropwizard-vs-spring-boot.html\"},\"author\":{\"name\":\"Alex Zhitnitsky\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/7cb10ac83aff923b5a76862069c27065\"},\"headline\":\"Java Bootstrap: Dropwizard vs. Spring Boot\",\"datePublished\":\"2015-03-04T14:00:07+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2015\\\/03\\\/java-bootstrap-dropwizard-vs-spring-boot.html\"},\"wordCount\":1796,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2015\\\/03\\\/java-bootstrap-dropwizard-vs-spring-boot.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/spring-logo.jpg\",\"keywords\":[\"Dropwizard\",\"Spring\",\"Spring Boot\"],\"articleSection\":[\"Enterprise Java\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2015\\\/03\\\/java-bootstrap-dropwizard-vs-spring-boot.html#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2015\\\/03\\\/java-bootstrap-dropwizard-vs-spring-boot.html\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2015\\\/03\\\/java-bootstrap-dropwizard-vs-spring-boot.html\",\"name\":\"Java Bootstrap: Dropwizard vs. Spring Boot - Java Code Geeks\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2015\\\/03\\\/java-bootstrap-dropwizard-vs-spring-boot.html#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2015\\\/03\\\/java-bootstrap-dropwizard-vs-spring-boot.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/spring-logo.jpg\",\"datePublished\":\"2015-03-04T14:00:07+00:00\",\"description\":\"How to get a production ready Java application off the ground in the shortest time possible? I\u2019m not a morning person, so sometimes it takes a while for\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2015\\\/03\\\/java-bootstrap-dropwizard-vs-spring-boot.html#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2015\\\/03\\\/java-bootstrap-dropwizard-vs-spring-boot.html\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2015\\\/03\\\/java-bootstrap-dropwizard-vs-spring-boot.html#primaryimage\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/spring-logo.jpg\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/spring-logo.jpg\",\"width\":150,\"height\":150,\"caption\":\"spring-interview-questions-answers\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2015\\\/03\\\/java-bootstrap-dropwizard-vs-spring-boot.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Java\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/java\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Enterprise Java\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/java\\\/enterprise-java\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Java Bootstrap: Dropwizard vs. Spring Boot\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"name\":\"Java Code Geeks\",\"description\":\"Java Developers Resource Center\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"alternateName\":\"JCG\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.javacodegeeks.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/javacodegeeks\",\"https:\\\/\\\/x.com\\\/javacodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/7cb10ac83aff923b5a76862069c27065\",\"name\":\"Alex Zhitnitsky\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8ce5d7ecc8c7467680ad01ee6a39bdbf9a99d62d8611c243669340e8f7405466?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8ce5d7ecc8c7467680ad01ee6a39bdbf9a99d62d8611c243669340e8f7405466?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8ce5d7ecc8c7467680ad01ee6a39bdbf9a99d62d8611c243669340e8f7405466?s=96&d=mm&r=g\",\"caption\":\"Alex Zhitnitsky\"},\"description\":\"Alex is an engineer working with OverOps on a mission to help Java and Scala developers solve bugs in production and rid the world of buggy software. Passionate about all things tech, he is also the co-founder &amp; lead of GDG Haifa, a local developer group. Alex holds a B.Sc from the Technion, Israel's Institute of Technology.\",\"sameAs\":[\"http:\\\/\\\/www.takipi.com\\\/\",\"https:\\\/\\\/x.com\\\/overopshq\"],\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/author\\\/alex-zhitnitsky\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Java Bootstrap: Dropwizard vs. Spring Boot - Java Code Geeks","description":"How to get a production ready Java application off the ground in the shortest time possible? I\u2019m not a morning person, so sometimes it takes a while for","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.javacodegeeks.com\/2015\/03\/java-bootstrap-dropwizard-vs-spring-boot.html","og_locale":"en_US","og_type":"article","og_title":"Java Bootstrap: Dropwizard vs. Spring Boot - Java Code Geeks","og_description":"How to get a production ready Java application off the ground in the shortest time possible? I\u2019m not a morning person, so sometimes it takes a while for","og_url":"https:\/\/www.javacodegeeks.com\/2015\/03\/java-bootstrap-dropwizard-vs-spring-boot.html","og_site_name":"Java Code Geeks","article_publisher":"https:\/\/www.facebook.com\/javacodegeeks","article_published_time":"2015-03-04T14:00:07+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/spring-logo.jpg","type":"image\/jpeg"}],"author":"Alex Zhitnitsky","twitter_card":"summary_large_image","twitter_creator":"@overopshq","twitter_site":"@javacodegeeks","twitter_misc":{"Written by":"Alex Zhitnitsky","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.javacodegeeks.com\/2015\/03\/java-bootstrap-dropwizard-vs-spring-boot.html#article","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/2015\/03\/java-bootstrap-dropwizard-vs-spring-boot.html"},"author":{"name":"Alex Zhitnitsky","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/7cb10ac83aff923b5a76862069c27065"},"headline":"Java Bootstrap: Dropwizard vs. Spring Boot","datePublished":"2015-03-04T14:00:07+00:00","mainEntityOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2015\/03\/java-bootstrap-dropwizard-vs-spring-boot.html"},"wordCount":1796,"commentCount":1,"publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2015\/03\/java-bootstrap-dropwizard-vs-spring-boot.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/spring-logo.jpg","keywords":["Dropwizard","Spring","Spring Boot"],"articleSection":["Enterprise Java"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.javacodegeeks.com\/2015\/03\/java-bootstrap-dropwizard-vs-spring-boot.html#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.javacodegeeks.com\/2015\/03\/java-bootstrap-dropwizard-vs-spring-boot.html","url":"https:\/\/www.javacodegeeks.com\/2015\/03\/java-bootstrap-dropwizard-vs-spring-boot.html","name":"Java Bootstrap: Dropwizard vs. Spring Boot - Java Code Geeks","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2015\/03\/java-bootstrap-dropwizard-vs-spring-boot.html#primaryimage"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2015\/03\/java-bootstrap-dropwizard-vs-spring-boot.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/spring-logo.jpg","datePublished":"2015-03-04T14:00:07+00:00","description":"How to get a production ready Java application off the ground in the shortest time possible? I\u2019m not a morning person, so sometimes it takes a while for","breadcrumb":{"@id":"https:\/\/www.javacodegeeks.com\/2015\/03\/java-bootstrap-dropwizard-vs-spring-boot.html#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.javacodegeeks.com\/2015\/03\/java-bootstrap-dropwizard-vs-spring-boot.html"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/2015\/03\/java-bootstrap-dropwizard-vs-spring-boot.html#primaryimage","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/spring-logo.jpg","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/spring-logo.jpg","width":150,"height":150,"caption":"spring-interview-questions-answers"},{"@type":"BreadcrumbList","@id":"https:\/\/www.javacodegeeks.com\/2015\/03\/java-bootstrap-dropwizard-vs-spring-boot.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.javacodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"Java","item":"https:\/\/www.javacodegeeks.com\/category\/java"},{"@type":"ListItem","position":3,"name":"Enterprise Java","item":"https:\/\/www.javacodegeeks.com\/category\/java\/enterprise-java"},{"@type":"ListItem","position":4,"name":"Java Bootstrap: Dropwizard vs. Spring Boot"}]},{"@type":"WebSite","@id":"https:\/\/www.javacodegeeks.com\/#website","url":"https:\/\/www.javacodegeeks.com\/","name":"Java Code Geeks","description":"Java Developers Resource Center","publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"alternateName":"JCG","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.javacodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.javacodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/www.javacodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/javacodegeeks","https:\/\/x.com\/javacodegeeks"]},{"@type":"Person","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/7cb10ac83aff923b5a76862069c27065","name":"Alex Zhitnitsky","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/8ce5d7ecc8c7467680ad01ee6a39bdbf9a99d62d8611c243669340e8f7405466?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/8ce5d7ecc8c7467680ad01ee6a39bdbf9a99d62d8611c243669340e8f7405466?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8ce5d7ecc8c7467680ad01ee6a39bdbf9a99d62d8611c243669340e8f7405466?s=96&d=mm&r=g","caption":"Alex Zhitnitsky"},"description":"Alex is an engineer working with OverOps on a mission to help Java and Scala developers solve bugs in production and rid the world of buggy software. Passionate about all things tech, he is also the co-founder &amp; lead of GDG Haifa, a local developer group. Alex holds a B.Sc from the Technion, Israel's Institute of Technology.","sameAs":["http:\/\/www.takipi.com\/","https:\/\/x.com\/overopshq"],"url":"https:\/\/www.javacodegeeks.com\/author\/alex-zhitnitsky"}]}},"_links":{"self":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/37700","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/users\/562"}],"replies":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/comments?post=37700"}],"version-history":[{"count":0,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/37700\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media\/240"}],"wp:attachment":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media?parent=37700"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/categories?post=37700"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/tags?post=37700"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}