I've used Java for 10 years. I've never used Spring. I've never created an AbstractFactorySingleton. I've never used XML. There's nothing in Java that says you have to use anything in particular, apart from the runtime (Extremely solid), and the basic language syntax (IMHO nice enough).
OK, maybe they're not an idiot. Maybe it's warranted. I'd say it's probably over engineered stupidity though.
Even so, the title is like pointing to a stupidly constructed house and calling it "Everything that is wrong with bricks".