Spring Framework: Java enterprise application framework
Comprehensive framework for building enterprise Java applications with infrastructure support.
Learn more about Spring Framework
Spring Framework is a comprehensive application framework for the Java platform that serves as the foundation for enterprise application development. It implements inversion of control through dependency injection and provides aspect-oriented programming capabilities, along with data access abstractions and web application support. The framework follows a modular architecture where developers can use individual components as needed, with core features including container management, transaction handling, and integration layers. It is commonly used for building web applications, REST APIs, microservices, and enterprise backend systems.
Dependency Injection
Implements inversion of control container that manages object dependencies and lifecycle. This reduces coupling between components and improves testability.
Modular Architecture
Organized into discrete modules that can be used independently or together. Developers can include only the specific functionality they need for their applications.
Integration Ecosystem
Provides abstractions and integrations for data access, messaging, web services, and other enterprise technologies. Forms the foundation for the broader Spring project ecosystem.
Introduces testing improvements, client exception handling enhancements, and various performance optimizations.
- –Introduce Spring property to disable context pausing for tests
- –Avoid unnecessary pausing of application contexts in the TestContext framework
- –DisconnectedClientHelper should detect presence of RestClientException and WebClientException separately
- –Deprecate PagedListHolder and PropertyComparator for removal
- –Add DataAccessException and MessagingException to the excluded outermost exceptions in DisconnectedClientHelper
Introduces performance optimizations, retry mechanism enhancements, and improvements to testing and WebFlux.
- –Avoid unnecessary list creation and processing in AbstractTestContextBootstrapper
- –AbstractTestContextBootstrapper should resolve ContextLoader only once
- –Log RetryException for @Retryable methods
- –Consistently stop already started Lifecycle beans on cancelled refresh
- –Support timeouts in @Retryable and RetryPolicy
Fixes package cycle issues and improves WebSocket session handling with concurrent transaction support.
- –Avoid package cycle caused by use of UriComponentsBuilder in ServletServerHttpRequest
- –DefaultHandshakeHandler should not log client faults on error level
- –Use concurrent set behind reactive TransactionSynchronizationManager#registerSynchronization
- –Expose Collection<ModelAndView> on FragmentsRendering to facilitate Unit Tests
- –Different ReactorNettyWebSocketSession call getId() may return the same value
Top in Backend & APIs
Related Repositories
Discover similar tools and frameworks used by developers
Discourse
Self-hostable forum platform with Ruby on Rails, real-time chat, and plugin support.
Dragonfly
In-memory data store with Redis/Memcached API compatibility and multi-threaded C++.
Celery
Asynchronous task queue with distributed worker execution.
redis-py
High-performance Python Redis client with clustering, pipelines, and async operation support.
Ruby on Rails
Convention-driven Ruby framework for full-stack web applications.