My gut feel is that this article is somewhat slanted. It paints Spring as a framework that is relatively closed and complex. Struts is proprietary and has managed to enjoy a modicum of success. Likewise, in my opinion this article downplays several strengths of Spring that, from a purely pragmatic standpoint, are quite important:

Spring is available now as a mature framework that can run without an application server, if desired.

Spring will run just fine on JDK 1.4.2. While I'd love to be developing with 1.5, I would bet that most corporate IT shops are not ready to make the jump.
<lil>Spring's object factory (bean wiring) is not complex; it is robust. Any reasonably intelligent developer can understand the basics of DI just by looking at the file. After all, how hard is it to interpret this:<br/>
<property name="greeting" value="Hello World"/>

Spring's DI capability is general-purpose and broad; from your article it seems that the EJB 3.0 capability is limited to managed objects.

Spring makes testing easier. It is laffable that you describe in-container testing as "easier".

Spring offers choice; this is an advantage that should not be discounted.

<br/>
I believe that the Java community would be better served by a discussion that focuses on the appropriateness of different frameworks. EJB 3.0 and Spring, are without a doubt both excellent frameworks for J2EE. Developers and architects want to know how well these different frameworks meet their needs. The answers to those questions are the ones that will really help.