- dependency injection (you need this for unit tests)
- easy to define request mappings makes creating a restful api possible in mins
- custom jsp tags
- jdbcTemplate
- an enourmous library of useful functions (eg security, internationalization, device interceptor etc etc)
ItsIs just a few of the practical benefits you can get off the top of my head. Its sheer size can be offputting, and the config is somewhat confusing to begin with, and still cause sme problems now and again (after two years).
And yesYes it conformspromotes to model-view-controller, controllers are so much nicer to write than vanilla servlets (less verbose, more powerful).
It has a learning curve, once that has been passed you can definitely be more productive with spring, than without, imho.