You don't "prefer Spring
over Struts." Spring and Struts are not mutually exclusive. Nor, for that matter are Spring and
JSF, which is what I've beein using since I moved on from Struts.
In point of fact, most of my recent webapps are Spring+JSF apps. While I don't have much use for the Spring MVC subsystem, which is the one part of Spring that does kind of run as an alternative to UI technologies like Struts and JSF, I do have one app that even mixes a little Spring MVC in with the JSF.
In my JSF apps, the persistence layers are entirely Spring-based, as are certain other pluggable subsystems, such as emailers that I like to swap out for
testing purposes.