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.