⭐ New Features
- Support by-type lookup/injection of primitive types [SPR-8874] #13515
- Introduce SystemEnvironmentPropertySource [SPR-8869] #13510
- LocalSessionFactoryBean in Spring 3.1.0.RC1 unable to set NamingStrategy [SPR-8864] #13506
- EhCacheFactoryBean does not support setting setStatisticsEnabled field. [SPR-8855] #13497
- change log level on AbstractWebArgumentResolverAdapter.supportsParameter [SPR-8851] #13493
- Javadoc for ResourceHolder.isVoid contains misspelling [SPR-8843] #13485
- reconsider ValueWrapperImpl name [SPR-8833] #13475
- introduce meta annotation for declaring multiple
@Cache
annotations [SPR-8830] #13472 - Add ServletUriComponentsBuilder [SPR-8823] #13465
- Allow
@Configuration
classes to self-@ComponentScan
[SPR-8808] #13450 - UriComponentsBuilder should also contain subtractive methods [SPR-8803] #13445
- Add a way to easily reverse 'ignoreDefaultModelOnRedirect' default when using mvc:annotation-driven [SPR-8801] #13443
- Improve documentation on options for configuring Spring MVC [SPR-8784] #13427
- Button Tag [SPR-8755] #13397
- RequestMappingHandlerMapping lacks detectHandlersInAncestorContexts [SPR-8753] #13395
- MockServletRequest and MockServletResponse Ignore Content-Type [SPR-8750] #13392
- Implement new method from ClassLoadHelper to make Spring work with Quartz 2.1 [SPR-8727] #13369
- Allow for a more flexible
@CacheEvict
annotation [SPR-8629] #13272 - UriTemplate doesn't encode query parameters [SPR-8403] #13050
- Provide
@Configuration
support for annotation-based caching [SPR-8312] #12960 - Ease creating Location headers in REST controllers [SPR-8020] #12675
- Improve documentation of the context caching mechanism in the TestContext framework [SPR-7996] #12651
- Introduce
@EnableSpringConfigured
[SPR-7888] #12544 - Add updateOnly option to
@Cacheable
annotation [SPR-7833] #12489
🪲 Bug Fixes
- [Documentation] Wrong namespace declaration in c-namespace example in reference guide. [SPR-8879] #13520
- Truncated HTTP responses [SPR-8867] #13509
@InitBinder
and@ModelAttribute
caches in RequestMappingHandlerAdapter ignore "prototype" controllers [SPR-8859] #13501- Path variable in class-level
@RequestMapping
not working properly [SPR-8858] #13500 - JUnit Dependency not in Central [SPR-8852] #13494
- Spring 3.1 RC1 includes stale duplicate of spring-cache XSD [SPR-8850] #13492
- Misplaced "foo bar" in Reference Documentation under "Classpath scanning and managed components" [SPR-8842] #13484
- DateTimeFormat javdoc mistake [SPR-8838] #13480
@Configuration
class enhancement is not idempotent [SPR-8824] #13466- Unguarded access to first iterator element in RequestMappingInfoHandlerMapping [SPR-8819] #13461
- org.springframework.orm.hibernate4.LocalSessionFactoryBean fails if 'packagesToScan' is not set [SPR-8812] #13454
- ExtendedBeanInfo raises 'type mismatch' error with covariant property types [SPR-8806] #13448
- Regression: HibernateJpaDialect adding SessionFactory as txResource not getting cleaned up [SPR-8800] #13442
- DefaultFlashMapManager does not support URLs with multiple parameter values [SPR-8798] #13440
- New non-optional dependencies in org.springframework.web-3.1.0.RC1.jar [SPR-8788] #13431
- Update and improve AnnotationDrivenBeanDefinitionParser javadoc [SPR-8783] #13426
- RedirectAttributes parameter results in IllegalArgumentException if using DefaultAnnotationHandlerMapping or AnnotationMethodHandlerAdapter [SPR-8782] #13425
- 3.1 RC1 does not work on Google App Engine because direct InitialContext usage (which is restricted) [SPR-8781] #13424
- Transaction synchronization resources are not properly cleaned-up [SPR-8778] #13421
- java.lang.NoSuchMethodError: org.hibernate.SessionFactory.openSession()Lorg/hibernate/classic/Session; [SPR-8776] #13419
- MethodInvokingJobDetailFactoryBean doesn't actually return the JobDetail if Quartz 2.0 in use [SPR-8775] #13418
- Jpa transaction manager transaction suspension ignores dialect resources [SPR-8771] #13414
- RequestDataValueProcessor not called in RedirectView [SPR-8770] #13413
- Spring tries to instantiate nested annotation with a
@Component
annotation [SPR-8761] #13404 - SimpleMappingExceptionResolver: setStatusCodes getter return not same as setter. Makes override impossible [SPR-8759] #13402
- Code example bug in Cache Abstraction document [SPR-8708] #13350
- Duplicate "type" attribute rendered in JSP InputTag [SPR-8694] #13336
- form:hidden disabled attribute is created regardless if value is true or false [SPR-8661] #13303
- NumberFormatException caused by property paths from JSR-303 based validation with no index into a collection [SPR-8634] #13276
- Formatter subsystem's ParserConverter skips Parser invocation if input string is empty [SPR-8321] #12969
- NotificationListenerBean constructor accepts null NotificationListener [SPR-8091] #12746