spring-projects/spring-framework
Spring Framework
Spring Framework is the foundation of the Spring portfolio: a collection of Java/Kotlin libraries that provide an Inversion of Control (IoC) container, aspect-oriented programming, data access abstractions, transaction management, and two web stacks (Servlet-based MVC and reactive WebFlux). It targets the JVM, ships as a multi-module Gradle build, and is published to Maven Central as org.springframework:*.
This wiki documents the codebase as it exists on the main branch (currently version 7.1.0-SNAPSHOT). It is generated from the source tree and aims to help engineers find their way around 20+ modules, ~9,000 Java source files, and roughly 2,800 test classes.
What it is and what it isn't
Spring Framework is a library set, not an application. It does not run on its own. Instead, your application embeds it as a dependency and lets the framework wire your beans, manage transactions, render web responses, or marshal messages. The framework is the runtime foundation; popular projects like Spring Boot, Spring Security, Spring Data, and Spring Cloud build on top of it.
Who uses it
Java/Kotlin teams writing server-side applications. The most common entry points are:
- Web applications using Spring MVC (
spring-webmvc) on Servlet containers like Tomcat or Jetty - Reactive web applications using Spring WebFlux (
spring-webflux) on Netty, Undertow, or Servlet 5+ - Batch and integration jobs that use the IoC container and transaction management
- Message-driven applications using JMS, AMQP (via Spring AMQP), or STOMP over WebSocket
- Test code using
spring-testfor@SpringBootTest-style integration testing
Repository layout at a glance
| Directory | What's there |
|---|---|
spring-core/ |
Utilities, type system, resource abstraction, AOT support |
spring-beans/ |
The bean factory and bean definition machinery |
spring-context/ |
ApplicationContext, annotation-driven configuration, events, scheduling |
spring-aop/, spring-aspects/ |
Proxy-based AOP and AspectJ integration |
spring-expression/ |
Spring Expression Language (SpEL) |
spring-jdbc/, spring-tx/, spring-orm/ |
Data access: JDBC, transaction management, JPA/Hibernate integration |
spring-r2dbc/ |
Reactive R2DBC support |
spring-web/, spring-webmvc/ |
Servlet stack: web utilities and the MVC framework |
spring-webflux/ |
Reactive web framework |
spring-websocket/, spring-messaging/ |
WebSocket, STOMP, messaging abstractions |
spring-jms/ |
JMS support and listener container |
spring-oxm/ |
Object/XML marshalling |
spring-test/ |
The TestContext framework |
spring-context-support/ |
Quartz, JavaMail, mail, cache providers |
spring-context-indexer/ |
Compile-time component index for faster classpath scanning |
spring-instrument/ |
JVM agent for class instrumentation (LTW) |
spring-core-test/ |
Internal test helpers used by other modules |
framework-bom/, framework-platform/ |
Bill of Materials and dependency platform |
framework-api/, framework-docs/ |
Aggregated Javadoc and reference documentation (Antora/Asciidoctor) |
integration-tests/ |
Cross-module end-to-end tests |
Quick links
- Architecture — module dependency graph and how the pieces fit together
- Getting started — JDK requirements, building from source, running tests
- Glossary — IoC, ApplicationContext, AOP and other core terms
For module-by-module deep dives see modules/. For cross-cutting capabilities (DI, AOP, data access, reactive stack) see features/.
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.