There’s an interesting thread going on over at The Server Side based upon a comment made by Ugo Cei – "I seriously wonder why anyone would want to develop anything substantial in Java nowadays without using Spring ".
Having done J2EE applications using both “traditional” approaches (i.e. EJB 2.x) and more lightweight approaches (e.g. Spring), I’d choose the more lightweight approach every time. Probably the majority of J2EE applications don’t need the full J2EE stack and Spring provides all the tools necessary to get the job done. As I mentioned in a previous post, when I’ve done projects without using Spring, I’ve missed not having dependency injection (why should I really care about getting a database connection?).
EJB 3 looks interesting however, yet there is a large momentum with Spring at the moment, so I don’t see either technology toppling the other. I think both technologies will co-exists side by side.