The Spring Framework provides a comprehensive programming and configuration model for modern Java-based enterprise applications – on any kind of deployment platform.
A key element of Spring is infrastructural support at the application level: Spring focuses on the “plumbing” of enterprise applications so that teams can focus on application-level business logic, without unnecessary ties to specific deployment environments.
- Core technologies: dependency injection, events, resources, i18n, validation, data binding, type conversion, SpEL, AOP.
- Testing: mock objects, TestContext framework, Spring MVC Test,
- Data Access: transactions, DAO support, JDBC, ORM, Marshalling XML.
- Spring MVC and Spring WebFlux web frameworks.
- Integration: remoting, JMS, JCA, JMX, email, tasks, scheduling, cache.
- Languages: Kotlin, Groovy, dynamic languages.
⭐️ New Features
- Fix for ScriptUtils failure when ‘–‘ occurs inside a multi-line comment on the same line as ‘*/’ #22392
- InjectionPoint autowiring throws exception for @resource beans autowired by name #22359
- PathMatchingResourcePatternResolver may double-wrap jar: URLs #22346
- mariadb-java-client 2.4.0 productName changed: breaks Spring Batch #22344
- SpringEL should not throw IllegalAccessError for invalid assignment #22336
- Avoid duplicate call to findAnnotations in DefaultListableBeanFactory.findAnnotationOnBean #22318
- Load-time weaving support for WildFly 13+ #22297
- org.springframework.web.client.HttpMessageConverterExtractor#extractData fails to detect empty body when content-length header is missing #22265
- Deprecate JibxMarshaller #22249
- DefaultExceptionHandler logs warning cannot be disabled [SPR-17628] #22159
- Support for null literal in Jackson2JsonDecoder [SPR-17510] #22042
🐞 Bug Fixes
- IllegalArgumentException when overriding empty ‘excludeFilters’ array on @componentscan #22405
- @transactional beans not getting proxied when being initialized during failed circular reference attempt #22370
- CompositeLog does not log exceptions at ERROR level #22364
- ApplicationContext.refresh() causes stale listeners to be added to ApplicationEventMulticaster #22325
- ApplicationListenerMethodAdapter does not find @ordered annotation for dynamic proxies #22307
- NPE in AbstractHandlerMethodMapping when trace logging is enabled and a handler’s class loader does not provide package information #22306
- Incomplete fix for MethodParameter.isOptional() ArrayIndexOutOfBoundsException #22303
- Wrap DecodingException thrown by WebFlux functional endpoints #22290
- Fix truncation of response body in AbstractMessageConverterMethodProcessor #22287
- DataBuffer.write(CharSequence charSequence, Charset charset) fails on empty string with java.lang.IllegalStateException: Current state = RESET, new state = FLUSHED #22262
- Add tests for SpringBeanContainer (Hibernate ORM integration) and fix the behavior when requesting named beans #22260
- ServerSentEventHttpMessageReader leaves a leading space on field decoding [SPR-17511] #22043