Spring-Jar Usage

Cheat sheet for your reference when you add libraries to your projects, this reference should avoid redundant jars from your projects

Following files are in the spring framework package.




It contains the entire Spring framework including everything in the other JAR files also.


It contains the core Spring container and its utilities.


It contains the bean Spring container and JavaBeans support utilities.


It contains Spring’s AOP framework, source-level metadata support, AOP Alliance interfaces etc.,


It contains application context, validation framework, JNDI, templating support and scheduling.


It contains DAO support and transaction infrastructure.


It contains the JDBC support.


It contains JMX support, JCA support, scheduling support, mail support and caching support.


It contains the web application context, multipart resolver, Struts support, JSF support and web utilities.


It contains the framework servlets, web MVC framework, web controllers and web views.


It contains remoting support, EJB support and JMS support.


It contains iBATIS SQL Maps support, Apache OJB support, TopLink support and JDO support.


It contains Hibernate 2.1 support, Hibernate 3.x support.


It contains JNDI mocks, Servlet API mocks and JUnit support.



The Core package is the most fundamental part of the framework and provides the IoC and Dependency Injection features. The basic concept here is the BeanFactory, which provides a sophisticated implementation of the factory pattern which removes the need for programmatic singletons and allows you to decouple the configuration and specification of dependencies from your actual program logic.

The Context package build on the solid base provided by the Core package: it provides a way to access objects in a framework-style manner in a fashion somewhat reminiscent of a JNDI-registry. The context package inherits its features from the beans package and adds support for internationalization (I18N) (using for example resource bundles), event-propagation, resource-loading, and the transparent creation of contexts by, for example, a servlet container.

The DAO package provides a JDBC-abstraction layer that removes the need to do tedious JDBC coding and parsing of database-vendor specific error codes. Also, the JDBC package provides a way to do programmatic as well as declarative transaction management, not only for classes implementing special interfaces, but for all your POJOs (plain old Java objects).

The ORM package provides integration layers for popular object-relational mapping APIs, including JPA, JDO, Hibernate, and iBatis. Using the ORM package you can use all those O/R-mappers in combination with all the other features Spring offers, such as the simple declarative transaction management feature mentioned previously.

Spring’s AOP package provides an AOP Alliance-compliant aspect-oriented programming implementation allowing you to define, for example, method-interceptors and pointcuts to cleanly decouple code implementing functionality that should logically speaking be separated. Using source-level metadata functionality you can also incorporate all kinds of behavioral information into your code, in a manner similar to that of .NET attributes.

Spring’s Web package provides basic web-oriented integration features, such as multipart file-upload functionality, the initialization of the IoC container using servlet listeners and a web-oriented application context. When using Spring together with WebWork or Struts, this is the package to integrate with.

Spring’s MVC package provides a Model-View-Controller (MVC) implementation for web-applications. Spring’s MVC framework is not just any old implementation; it provides a clean separation between domain model code and web forms, and allows you to use all the other features of the Spring Framework.