4 ms·
Just from my experience, its flexibility and feature set. Some points I find relevant (specific to Spring Boot): - If I'm building a web service I can choose i
by Tsarbomb 5y ago
Just from my experience, its flexibility and feature set. Some points I find relevant (specific to Spring Boot):
- If I'm building a web service I can choose if I'm using a thread based sync approach or a reactive non blocking approach.
- Extremely opinionated and well thought out configuration management. Think of Viper from Go, or config with Pydantic from Python, just turned to 11.
- I can add support for many different data stores directly with the framework. Psql, Elasticsearch, Cassandra... the list goes on.
- Making critical sections of code, especially around data stores can usually be made transactional with a single annotation and managing the lifecycle of that transaction is similarly convenient.
- Robust caching solutions that are brain dead easy to add. I stress the robust adjective.
- Built in health metrics and ability to refresh configuration while running and rewire itself.
- Can speak OAuth2.0 out of the box.
- You can connect the logger with a little bit extra configuration to additionally spit logs out to something like Kafka with no extra code on your part.
This list alone doesn't seem super impressive but having built on things like Python+FastAPI, Node+Express/Hapi/Apollo, and Rust+Actix, while you can do all of these things, they are not generally just there, ready to use, and suitable for production.
My bread and butter used to be Spring-Boot w/ Lombok and I could take a service from inception to running in prod with fewer lines of code than I currently can with Python and FastAPI.
Extra Note: There will always come a time when developing with spring where you will shout to the high heavens about something the framework does a particular way or something you misunderstood. That is part of the pain of when the framework does so much for you.
- markoman 5y agoGiven your comments about your Spring Boot 'bread and butter', it looks like you changed to Python & FastAPI. If so, why? Was it due to a reduction in overall complexity (despite the apparent rise in line of code)? Curious, thanks.