What is our primary use case?
I primarily rely on Spring Boot as the core microservices framework, used for creating myriad solutions for health care and for the financial services industries. Environments change, depending on client commitments and budgets, but Spring Boot remains as the successful nexus for all development.
I have used it for both SQL and NoSQL solutions, including both caching and non-caching environments. With over 20 Spring modules to select for possible augmentation of the basic Spring Boot platform, there is nearly always a solution available.
In cases, where some additional, narrow functionality is still lacking, many existing solutions can be integrated into the Spring Boot Java framework, even if that functionality is not part of an official Spring Boot add-on module.
How has it helped my organization?
Spring Boot has sped time to market and has also improved testability, hence also improving the quality of deployed solutions. By eliminating the need for XML configuration, Spring Boot has also been instrumental in improving application performance, since this shift away from XML has provided an impetus to migrate from SOAP to RESTful services.
Also, Spring Boot has facilitated cloud migrations, since now the application can be deployed as a simple JAR file. Where Spring Boot has not helped has been with clients, who insist on moving away from Java (and .NET), towards lighter-weight solutions, such as NodeJS.
What is most valuable?
I have found the starter solutions valuable, as well as integration with other products. For example, the MongoDB Repository feature is extremely helpful. Also, the integration with Spring Data JPA is valuable for accessing familiar JPA query functionality.
Spring Security facilitates the handling of standard security measures.
The Spring Boot annotations make it easy to handle routing for microservices and to access request and response objects.
Other annotations included with Spring Boot enable move away from XML configuration, and, of course, autowiring removes the necessity for creating objects in many scenarios.
What needs improvement?
Perhaps an even lighter-weight, leaner version could be made available, to compete with alternative solutions, such as NodeJS.
It would also be extremely helpful if hand-holding templates were provided, to quickly guide new developers through the entire end-to-end process of developing a solution with Spring Boot. These aids could be in question or checkbox answer format, which would then trigger the appropriate guides. The guides should be geared to developer tasks. For example, after the neophyte Spring Boot developer answers some questions, the guide might say, "OK, then, you will want to put your MongoDB queries in the MongoDB Repository that you have created. You can use this @Query format..."
For how long have I used the solution?
I have been using Spring Boot for three years.
What do I think about the stability of the solution?
My impression is that Spring Boot is highly stable. In fact, I have not seen any stability problems, at all, since I have been using it.
What do I think about the scalability of the solution?
Spring Boot scales well. Care must be taken if any state is to be maintained since maximum scalability would be associated with a singleton instance of the application.
How are customer service and technical support?
A deep and wide community provides substantial support for the entire Spring Boot ecosystem.
Which solution did I use previously and why did I switch?
Previously, I used the traditional Spring and EJB. Performance, error-prone XML SOAP layer, XML-weak developer skillset, as well as increased ease of Cloud deployment were prime motivators for switching to Spring Boot.
How was the initial setup?
The initial setup is straightforward due to the extensive starter project support online. Also, there is vast community support online for Spring Boot.
What about the implementation team?
Developers implemented without any vendor team support.
What was our ROI?
Since Spring Boot, as well as the associated Eclipse IDE (with the Spring Tool Suite, STS, installed) are free, ROI is extremely high. The only investment is developer training, which is minimized, in part by having starter projects available online, and in part, by the simplicity of the design of the platform.
What's my experience with pricing, setup cost, and licensing?
Spring Boot is free; even the Spring Tools Suite for Eclipse is free.
I advise others to use the cost savings to invest in Postman Pro, and to use that product to create and run suites of integration testing, whenever changes are made to the code base. I even advise moving unit testing to Postman Pro test scripts, which can be run by testers, in addition to developers. In this way, zero-defect applications can be deployed and supported.
Which other solutions did I evaluate?
The closest competitor was a totally different option: NodeJS/React.
What other advice do I have?
Spring Boot is a great way to implement microservices in the Cloud. It is an especially good choice if the requirements include background processing and calculations, which make the application a poor candidate for a lighter-weight solution, such as NodeJS.
Which deployment model are you using for this solution?