Please share with the community what you think needs improvement with Spring Boot.
What are its weaknesses? What would you like to see changed in a future version?
Few things that come to my mind from a Developer / Application Architect standpoint are:1. Developer centicity -- You need skilled developer to understand what's happening under the hood and make it better2. Spring Security: This is one area where people struggle most like integration with SSOs / Azure AD kind of stuff; This can be simplified with OOB Templates with configurable options;3. Integration with UI based frameworks like Angular -- React building into one cohesive application instead of maintaining disparate containers (probably one can argue separation of concerns like UI -- Middleware but for applications that are small and medium maintaining 1 runtime makes more sense)4. Low code around Spring Integration5. One single dashboard for multiple components of Microservices toolset -- What I refer to here is once you start building Microservices you add on different toolsets for different things like management, metrics, gateways etc.. -- Everything lives in its own microcosm unleashing configuration/maintenance hell
I would like to see more integration in this solution.
This is not a tool for beginners. You need to know and understand it well. It needs to be simplified, more user-friendly. Spring Boot is only for lightweight components. You cannot have large applications on it. If the binary size is large then you have to ensure that the services that are designed are very lightweight. For example, if there are ten components, you have to divide them into ten and not into one. There needs to be a logical separation. I would like to see the size of the code improved and the framework. We don't always realize how much we are loading into the microservice. There should be some limitations in place to indicate whether the code size should not exceed a certain amount and should not compile itself.
The configuration moving down from a command key is difficult. If you are doing configurations and adding items, it can become a little challenging. The security could be simplified.
I feel like communication has to be increased. For example, communicating between different services from the third party layers or with the legacy applications. But, it's getting mature right now, but there are some communication patterns that are getting with Spring Boot.
I think that security is a delicate issue in this product. It's not as easy as in other technologies so unless you already have something configured it can't be done with a junior developer. You need some experience to do that properly and to understand how Spring security works. In addition, as many developers say, sometimes you can see too much magic without really understanding what's happening under the hood. This is the main benefit of Spring Boot, but also a disadvantage in the event that the convention doesn't work and needs to be customized. An additional feature they could consider would be the ability to reload properties without having to restart the application. It's one of the things I miss most. There is a solution that requires cloud tools, but there's no way to do it with a simple configuration.
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..."
The product could be improved by supporting and integrating Hadoop. A year ago Spring Boot announced that they were removing Hadoop support from the product but many software companies work with Hadoop and Cassandra, and I really think that Spring Boot should renew the Hadoop connection.