Spring maintains a Modular architecture. The benefits of Modular architecture is that you can take those modules which are applicable for your project. To be precise, Spring comes with jars and jars packaged with module like JMS module, ORM module, WEB module, AOP module etc..
So If your project only needs JMS, JDBC and Spring core you can only add those jars in your classpath. Later if you want to use ORM module just add those ORM specific jars and you are ready to use ORM framework. Very easy isn’t it?
Spring Architecture Diagram
This module uses STOMP protocol. STOMP is the Simple (or Streaming) Text Orientated Messaging Protocol. STOMP provides an interoperable wire format so that STOMP clients can communicate with any STOMP message broker to provide easy and widespread messaging interoperability among many languages, platforms and brokers.
Data Access/Integration consists of following modules.
Spring provides a JDBC template which hides boilerplate code. By using this module, working on JDBC is very easy.
Spring provides templates for popular ORM framework like Hibernate, ibatis etc.
Spring provides template for popular Object/XML mapping framework like JAXB,XML Beans,Castor etc.
Transaction: Spring provides support for Programmatic and declarative transaction. Using Spring AOP, it provides declarative transaction.
Web layer produce support for the portlet, servlet and WebSocket programming. Using Spring MVC we can develop an MVC project.