I think spring has its place in some products
but it is overused
here are some problems with design model spring promotes:
1) singleton objects for components
2) stateless business tier objects
3) life cycle model (create component objects on startup)
although users can use factory objects but that is not the main model.
I think because of the first 2 options spring is not an scalable solution on multiple CPU computers
I may be a a good solution for small web based java programs but not for Java EE (Enterprise) programs.
it is nearly a year that I am using JBoss Seam and I found it much better than Spring because:
1) better component model
2) better state management
3) better scalability
4) easier programing
5) more features (bijection, ajax, ...)