If you did not use Spring, you'd have to invent your own configuration file format for your application. You'd work hard at it, wind up with something crappy, and you'd have to mess around with configuration system code whenever you change the system.
On the other hand, Spring exposes a huge amount of complexity to the end users and the error messages can be hard to understand. My experience is that if you read the Spring manual from cover to cover a few hundred times it will make sense, but if you try to learn "How to do X?" from Stackoverflow and Google you'll be driven crazy and if you have to deal with Spring files written by people who cut-and-pasted, you might be driven all the way to suicide.
Then there are all the apps like Jetty and Solr that have something similar built in but worse...
One of the most frustrating weeks I've spent was modifying bash scripts to work around wonky functionality on AWS Elastic Beanstalk. Every time I tried something, I had to wait 30 minutes for it to deploy and then examine the error message to see what was wrong.
Of course, in the meantime I would get distracted by something else, so the cycle time was even longer.
Ask some operations people about this, they have been dealing with this avoidable laziness for some time.