# spring-projects/spring-framework

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/spring-projects-spring-framework).**

60,028 stars · 38,837 forks · Java · Apache-2.0

## Links

- GitHub: https://github.com/spring-projects/spring-framework
- Homepage: https://spring.io/projects/spring-framework
- awesome-repositories: https://awesome-repositories.com/repository/spring-projects-spring-framework.md

## Topics

`framework` `spring` `spring-framework`

## Description

Spring Framework is an enterprise Java framework providing a comprehensive infrastructure for building server-side applications. It functions as a dependency injection container and a Java application framework designed to support scalable backend development through modular architecture.

The project provides tools for aspect-oriented programming to intercept method calls using dynamic proxies, allowing the application of cross-cutting concerns such as security and transactions. It also includes a centralized system for managing object lifecycles and coordinating component wiring by injecting dependencies at runtime.

The framework covers a broad range of capabilities including backend infrastructure for data access and transaction management, event-driven component communication, and resource abstraction layers. Additionally, it provides build automation tooling to manage dependencies, verify artifact integrity, and support multi-release Java distributions.

## Tags

### Software Engineering & Architecture

- [Java Frameworks](https://awesome-repositories.com/f/software-engineering-architecture/application-frameworks/general-purpose-frameworks/java-frameworks.md) — Provides a comprehensive framework for building scalable, modular server-side applications within the Java ecosystem.
- [Inversion-of-Control Containers](https://awesome-repositories.com/f/software-engineering-architecture/inversion-of-control-containers.md) — Provides a central Inversion-of-Control container to manage object lifecycles and dependency wiring.
- [Annotation-Driven Configuration](https://awesome-repositories.com/f/software-engineering-architecture/annotation-driven-configuration.md) — Provides a system for defining beans and application settings using custom metadata markers.
- [Aspect-Oriented Programming](https://awesome-repositories.com/f/software-engineering-architecture/architectural-design-patterns/aspect-oriented-programming.md) — Employs aspect-oriented programming to modularize cross-cutting concerns like logging and security.
- [Aspect-Oriented Programming Frameworks](https://awesome-repositories.com/f/software-engineering-architecture/aspect-oriented-programming-frameworks.md) — Implements an aspect-oriented programming framework for modularizing concerns like security and transactions.
- [Dependency Injection Containers](https://awesome-repositories.com/f/software-engineering-architecture/dependency-injection-containers.md) — Provides a comprehensive dependency injection container for managing object creation and lifecycles.
- [Annotation-Based Metadata Mapping](https://awesome-repositories.com/f/software-engineering-architecture/annotation-based-metadata-mapping.md) — Implements runtime behavior mapping by scanning custom Java annotations on the classpath.
- [Hierarchical Contexts](https://awesome-repositories.com/f/software-engineering-architecture/application-contexts/hierarchical-contexts.md) — Organizes components into a tree of containers where children inherit configuration and beans from parents.
- [Bean Definition Hierarchies](https://awesome-repositories.com/f/software-engineering-architecture/application-lifecycle-management/configuration-management/hierarchical-configuration-systems/bean-definition-hierarchies.md) — Organizes bean definitions in a parent-child tree for configuration inheritance.
- [Event Bus Architectures](https://awesome-repositories.com/f/software-engineering-architecture/event-bus-architectures.md) — Provides an event bus architecture for asynchronous message passing and event-driven communication.
- [Event-Driven Architectures](https://awesome-repositories.com/f/software-engineering-architecture/event-driven-architectures.md) — Implements an event-driven architecture for building reactive systems via asynchronous processing.
- [Resource Abstraction Interfaces](https://awesome-repositories.com/f/software-engineering-architecture/resource-abstraction-interfaces.md) — Decouples application logic from physical storage by wrapping diverse data sources in a unified interface.
- [Storage Abstraction Layers](https://awesome-repositories.com/f/software-engineering-architecture/storage-abstraction-layers.md) — Provides storage abstraction layers that decouple application logic from specific backend implementations.

### Data & Databases

- [Infrastructure Layers](https://awesome-repositories.com/f/data-databases/backend-data-access-layers/infrastructure-layers.md) — Provides the foundational backend infrastructure for data access and transaction management in Java applications.

### Web Development

- [Runtime Proxy Interceptors](https://awesome-repositories.com/f/web-development/dynamic-proxies/runtime-proxy-interceptors.md) — Wraps objects in dynamic proxies to inject cross-cutting logic into method invocations.
