title: Easiest frameworks to implement Java REST web services in 2014
body: <p>a lot of frameworks on the JVM platform have grown big and in my opinion a bit messy. Some J2EE projects I was involved in had almost as many configuration files as source code files. Sure, one can argue that’s always up to the developer but I tend to prefer framework and tools with a clear structure and maybe even some borders to make sure everyone uses the same style and architecture</p>
  
  <p>What are the best frameworks for implementing server REST + website frameworks in Java? I've been struggling a little to find an easy to use solution.</p>
  
  <p>Jersey and Restlet seem like good options, but I read the old threads, before learning Restlet the will to make sure there are no significant new tools?</p>
  
  <p>I want to create a simple REST API(for android) and website</p>
  
  <p><strong>Update 2017-01-26: 
  After two years, I can confidently admit that Spring Boot is what I was looking for</strong></p>
  
  <p>Spring Boot aims to make it easy to create Spring-powered, production-grade applications and services with minimum fuss. It takes an opinionated view of the Spring platform so that new and existing users can quickly get to the bits they need. You can use it to create stand-alone Java applications that can be started using ‘java -jar’ or more traditional WAR deployments. We also provide a command line tool that runs ‘spring scripts’.</p>
  
  <p>The diagram below shows Spring Boot as a point of focus on the larger Spring ecosystem. It presents a small surface area for users to approach and extract value from the rest of Spring:</p>
  
  <p><a href="https://i.stack.imgur.com/8uBTl.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/8uBTl.png" alt="enter image description here"></a></p>
  
  <p>Spring Boot in Context</p>
  
  <p>The primary goals of Spring Boot are:</p>
  
  <ul>
  <li><p>To provide a radically faster and widely accessible ‘getting started’ experience for all Spring development</p></li>
  <li><p>To be opinionated out of the box, but get out of the way quickly as requirements start to diverge from the defaults</p></li>
  <li>To provide a range of non-functional features that are common to large classes of projects (e.g. embedded servers, security, metrics, health checks, externalized configuration)</li>
  </ul>
  
  <p>Spring Boot does not generate code and there is absolutely no requirement for XML configuration.</p>