O’Reilly’s OnJava.com site have a good article on developing webapps using a combination of Struts, Spring and Hibernate.
The section on using Spring is very interesting – using Spring gives you declaritive control over the dependencies between objects, and therefore also between application application layers. This can be used to further reduce coupling between code in each architectural layer, for example between Presentation and Business, and between Business and Persistence.
From what I understand about the use of Spring (or other ‘microcontainers’), it gives you a level of abstraction and allows you to reduce direct coupling between Classes by being able to define relationships and dependencies declaritively (rather than in actual code). I think this can be compared to what the struts-config.xml gives you for webapps, in that it reduces coupling between web pages and page navigation, and the logic that controls that navigation.