Hi, Craig. You cited Spring Boot for application setup as a latest best practice. Spring Boot really speed's up the setup time, as I observed in a simple test project. But I wonder if it's really used by big companies in complex systems. I thought it was more for small projects that don't require too much configuration.
Is it a common practice, in the current state of the framework in 2020, to start a project with Spring Boot and gradually add custom configurations, even for big companies with complex systems?
A lot of modern enterprise apps depend on micro-services and things like containerization/elastic deployment. A Spring Boot app is an ideal framework for a micro-service that would be deployed in a Docker container(s).
Prior to Spring Boot, I used to have a base container image with bare Tomcat in it that I'd use as the substrate for images that deployed and configured webapps, but Spring Boot provides an all-in-one development environment, so it's easier to set up and has a standardized configuration.
No, not every system is a good fit for this approach, and in any event, a major enterprise is going to have some monolithic monster apps, especially legacy ones. But Spring Boot adds another useful tool to our toolbox.
I'm going to be a "small government" candidate. I'll be the government. Just me. No one else.
I'm not sure if I'm allowed to name names, so I won't. But...I assure you that virtually every large enterprise project I encounter, from companies whose names you know and have probably done business with, are all using Spring Boot.
I'll be honest and say that I don't understand why some think that Spring Boot is only good for small projects when, in fact, it really starts to shine on large-scale projects. I can write a "Hello world" app without Spring Boot and, although not as easy as with Spring Boot, isn't that painful. I can write a small-to-medium sized app without Spring Boot, but the pain increases as I have to explicitly configure and maintain configuration for all of my application's components. Extrapolating to large-scale enterprise applications which may even be spread across multiple services, I can't bear the thought of the pain I'd go through without the benefits of Spring Boot auto-configuration, starter dependencies, and...OF COURSE...the Actuator which really shines for large-scale projects.
Thank you guys for the answers. This part really stuck with me, because I sure was one of the "some" that think it's good mainly for small projects.
Craig Walls wrote:
I'll be honest and say that I don't understand why some think that Spring Boot is only good for small projects when, in fact, it really starts to shine on large-scale projects.
I think what happens is the focus on the advantage that you need very little configuration to start (in Spring learning materials). My question was also a product of my inexperience. I only started a year ago in my firsst serious software development job. I think I need to delve deeper in Spring, then. Thank you for the food for thought. This was sure helpful.