Diagram of Spring 3.0 module dependencies


As Spring 3.0.0.RELEASE is finally out, I decided to draw a diagram that shows interdependency of modules comprising the latest Spring Framework. For the sake of simplicity, some direct dependencies have been omitted if they can be deduced transitively. Optional dependencies are not displayed.

Spring 3.0 modules

The idea of this diagram is to get a bird’s-eye view of Spring Framework architecture. Also,  if you use Maven’s central repository and include, e.g. spring-tx in your project, you should understand that you’re also including spring-context, spring-aop, spring-expression, spring-beans and spring-core.

For a quick explanation of what’s inside each of the modules and which ones you should use, see this excelent post by Keith Donald.

  1. Richard - May 13th, 2010 at 11:02

    +1, this gives a clear overview of the dependencies between the spring jars

  2. Fabian - November 23rd, 2010 at 13:35

    Thanks for the nice diagram. This was what I was looking for. :)

  3. Ayusman - January 13th, 2011 at 12:31

    Very nice. I was trying to understand the right dependency structure for Spring 3.0.5.

  4. Teme - July 29th, 2011 at 18:11

    Looks like orm depends on web. I wish it did not because it is causing me a lot of headache… Look at org.springframework.orm.jpa.support .OpenEntityManagerInViewInterceptor it has reference to org.springframework.web.context.request.WebRequest Also looked at the pom for their orm project it does have web as dependency.

  5. Osvaldas Grigas - July 29th, 2011 at 22:32

    spring-orm’s dependency on spring-web is marked as optional, so spring-web will not be transitively included in your build unless you include it explicitly. I guess it makes sense to include the web module if you actually need something like “open session in view”.

  6. [...] a link to a Spring Modules diagram, which quickly helped me solve this. Share this:ShareFacebookLinkedInLike this:LikeBe the first to [...]