What do you like best?
If you are coming from the Java world, it does not require lot of effort to start building your own standalone application. It only requires Spring knowledge, which can be a bit complex. If you have knowledge about Spring, you are ready for coding.
I love the simplicity when building with Spring Boot. By default, it gives you lot of things out of he box which you can configure if interested: metrics, content negotiation, marshaling, caching, social features, etc.
The documentation is first class and the tutorials on the web can make you start building production ready features in a afternoon.
The team that is behind Spring is also quite reachable through Twitter and very knowledgeable.
What do you dislike?
Sometimes Spring Boot can do some 'magic' behind the scenes. Things like Autoconfiguration or dynamic repository implementation can give you a false sense of your app working correctly. Although this is something optional through annotations.
If anything I noticed I would change is the amount of dependencies it pulls and the number of classes loaded in memory.
For junior developers, if they don't know Spring, the learning curve may be a bit steep.
Recommendations to others considering the product
I would recommend to start learning Spring and its philosophy. After that, It is enough an afternoon working with Spring boot to start realizing you can get the work done quickly and in a robust way.
I would start doing examples in the following order:
- Write a hello world endpoint
- Add data storage layer and test information is being saved
- Add production ready features: actuator
- Play with the different spring boot starter submodules depending on your preferences
What business problems are you solving with the product? What benefits have you realized?
I work building microservices for integrating data with external parties as well as exposing services internally. My day to day consists on applications producing and consuming data from message queues.
Use Spring boot for personal projects as well, normally when a rest api needs to be exposed as part of the backend services.