Spring Boot


In our opinion, Spring has often proven that it is able to re-invent itself, implementing latest trends such as microservices, or embracing recently (with Spring 5) a reactive core. With Spring Boot, there exists a toolchain to get started really easily. That's why I am rating Spring as ADOPT.


  • slim core implementing Dependency Injection, Configuration Management and Web Framework
  • extensible through many modules
  • has excellent documentation
  • supports robust Hot Reloading for Development
  • since Spring 5, implements Reactive Streams in the core (Spring WebFlux)
  • supports Kotlin


  • contains lots of "magic" through annotations; so we suggest to only use the base annotations (like @Component, @Controller)


  • We've used ratpack in the past as async web server. However, the project seems to have stalled recently; and we found the documentation lacking in quite a few places. That's why we won't use Ratpack in new projects anymore.
  • We do not use Java EE.

Sandstorm Usage Guidelines

Use the following packages:

  • Spring Boot 2 (milestone release), to be able to use Spring 5
  • Spring WebFlux
  • Gradle-based build

If possible with the client, we're suggesting a Kotlin-based code base, using Constructor Injection where possible.