Earlier quoted context omitted.
I use Spring and I'm not agree that it's a mess. It has a lot of functionality but good architecture allows to keep it under control and easily enhance when needed. Spring is one of the best open source frameworks I've ever seen.
Both Spring and JavaEE (as compared to J2EE) have gotten a lot better by using annotations for meta-programming. I was about to give up on enterprise Java programming when the clutter/over-engineering started to get better. Curiously, I'm going to at least partially credit Ruby for introducing the idea of convention over configuration.
I am not really a ruby guy, but I'm very thankful RoR came along and shook things up.