10 years ago, Spring framework became a trend in Enterprise Java Development without huge and overweight classic JEE (it was called J2EE) technology based on EJB. We called Spring as JEE without EJB. Its amazing IoC container and DI schema have been doing our life much more easy. Configuration via annotations made the whole process even more fun, because it allows us to avoid describing all our beans and relations in XML. Nowadays, modern popular frameworks like Ruby on Rails or Django provides even more fast tools and development practices. On the other hand, Java Development world is bit more conservative. We had no easy and fast way to start new project. Instead, we had to spend some time to configure Spring environment. Spring Boot [http://projects.spring.io/spring-boot] is a solution for this problem, applicable in case of start up, agile approaches or even pet projects.
Configuration over dependencies
Rail uses its power command line tools to start new application, generate new element of the project and various other actions. But Spring Boot is not an automatic code generation tool. It is rather a plug for Java Development build system. It supports both Maven and Gradle. Main feature of of Spring Boot is
API turns a service into a platform
Nowadays, largest commercial services, such as Twitter, LinkedIn, Facebook, provides API for their models and services. They opened their platforms to be extended by huge community of software developers around the world. If one user of a service costs one unit, then single developer contributing into the architecture has value ten times more. This is true for full range of Application Development approaches from simple customization scripts to huge business based on complicated systems. API and its ability to extend and create attracts and even inspire the most creative specialists. This is a two-way street. On the one hand, developers and entrepreneurs have ability to grow up their own ideas into a successful business using existing cool service and its community of users, on the other hand, a service may acquire additional features without extra efforts. Users or hired API developers would design and implement specific features for their own needs. API looks like one more communication channel between customers, service and community as a whole. It is a way to show what they really need. API is a next-level step in the project evolution. It is a point where system may become a platform rather than just a service.