A Spring Boot application that works in staging is not the same as one that's production ready. We run a standard checklist on every service before it touches real traffic, and most of the items on it are boring by design.
Actuator endpoints must be secured or disabled in production — exposing /env or /heapdump publicly is a more common incident cause than most teams realize. Connection pool sizing should be tuned to your actual database capacity, not left at framework defaults.
Graceful shutdown handling matters more once you're running in Kubernetes, where pods are routinely terminated during deployments and autoscaling events. Without it, in-flight requests get dropped during every single deploy.
Finally, structured logging with correlation IDs across service boundaries turns a multi-hour incident investigation into a five-minute log query. It costs almost nothing to set up early and becomes nearly impossible to retrofit later.