Spring Framework / Spring Boot is by far the most popular Java framework. If you are looking for a framework with a very large community and for which paid support is available, look no further, you will not find anything better! We used Spring a lot before starting Spincast.
The problem we had with Spring, is that we found ourself asking those questions too often:
Our experience with Spring Framework is that it tends to be a little bit too magical, it tends to hide implementation details too much so your application is harder to configure and tweak. In the name of "Defaults that are good enough 80% of the time", Spring sometimes seems to favor simplicity over providing full control.
Any real-world application will be part of that 20% requiring a lot of manual tweaking, so why not base it on a framework that favors flexibility and control from the ground up?
Yes, it is very easy to start a new Spring Boot application using their pretty Initializr! But as long as you have developed at least one real application in your life, you know that this kind of simple bootstrapping is smoke and mirrors: you will have to modify/change/replace components at some points or another. You will have to manually control what is actually happening behind the scene.
Also, Spring relies a lot on annotations: that contributes to the "easy to use" aura. But, as we explain here, we are not big fans of annotations.
In the other hand, the very first goal of Spincast is to make modifying anything a borderline trivial task. If you find something that is not easily modifiable and should be, it will be considered as a bug and will be fixed.
Here is how you tweak almost anything in a Spincast application:
Even Spincast's core components can be modified using those simple steps.
In other words, we would say that the main difference between Spring and Spincast is that Spincast favors long term flexibility and control from the ground up, while Spring seems more preoccupied with providing something that is easy to start with.
(this news is taken from the About section of the site)
The new Spincast Process Utils plugin provides utilities to manipulate processes and external programs.
The main features are:
By combining those utilities, it is now possible to
test code inside a .jar file!
Indeed, running tests from an
IDE (or using the command line) doesn't always represent the
production environment, where everything is bundled in an executable
Finally, two new utility methods are provided by the SpincastUtils component:
Some custom serializers and deserializers are provided. Also, the GsonBuilder
is easy to access so you can add your own configurations to help build the final
The plugin, Spincast OpenAPI Bottom Up,
uses a bottom-up approach (also called "code first" approach) as it starts from the code
of your application to generate the associated OpenAPI specifications as
JSON or as
This plugin reuses a lot of code from the battle-tested and well-maintained official Swagger Core reference implementation. Doing so, the plugin should respect the OpenAPI specifications very well and should also be future-proof.