⭐ New Features
- PathMatchingResourcePatternResolver inconsistently throws IOException in case of non-existing resources [SPR-7365] #12023
- Setting validationMode to NONE in org.springframework.beans.factory.xml.XmlBeanDefinitionReader disables namespace support [SPR-6336] #11002
- Introduce portable NumberFormat annotation [SPR-6331] #10997
- Rename
@ImportXml
->@ImportResource
and allow for usage of non-XML BeanDefinitionReader types [SPR-6328] #10994 - Introduce portable
@DateTimeFormat
annotation [SPR-6313] #10979 - Tiles 2.1 support in Spring 3.0 is not compatible with Tomcat 5.5 [SPR-6309] #10975
- Spring Expression Language creates systemProperties bean calling System.getProperties() which in enterprise shared containers is locked down [SPR-6308] #10974
- Quartz scheduler should not start until context is refreshed [SPR-6307] #10973
- Add mvc namespace for simplifying setup of Spring MVC [SPR-6306] #10972
- Wrapped Hibernate SQLGrammarException loses the potential SQL statement that caused the exception [SPR-6304] #10970
- Add more logging to RestTemplate [SPR-6303] #10969
- Support
@RequestHeader
on HttpHeaders parameters [SPR-6301] #10967 - AbstractExcelView doesn't work with POI 3.5 [SPR-6298] #10964
- CompositeStringExpression doesn't use the ConversionService [SPR-6278] #10945
- Spring Aspects to provide DataAccessException translation for direct EntityManager usage [SPR-6275] #10942
- Spring Aspects to provide basic static mock test functionality [SPR-6274] #10941
- Consider introducing Printer/Parser specializations of Formatter [SPR-6272] #10939
- Register converters for util.Date/util.Calendar as well as Joda DateTime types in DefaultConversionService [SPR-6271] #10938
- Upgrade to new version of javax.el [SPR-6265] #10933
- Add namespace support for ErrorHandler on MessageListener containers [SPR-6240] #10908
- Reintroduce Struts support [SPR-6236] #10904
- Add facility to EhCacheFactorybean for registering event listeners [SPR-6234] #10902
- [spel] performance for property access is less than ideal [SPR-6230] #10898
- Let StringArrayPropertyEditor trim resulting array values [SPR-6195] #10863
- MockServletContext hardcoded to return 2.5 for servlet version [SPR-6194] #10862
- Use var-args instead of String[] to set allowed, disallowed, and required fields in DataBinder [SPR-6174] #10842
- Support
@ImportResource
within@Configuration
classes [SPR-6158] #10826 - Update the documentation to include the advice of using within() together with lone kinded pointcuts [SPR-6123] #10791
- Expose setter for ConversionService to be set in a DataBinder, or publicly available property [SPR-6108] #10776
- FrameworkServlet does not need parent to be WebApplicationContext [SPR-6102] #10770
- Add support for JodaTime for new UI formatting API [SPR-6085] #10753
- Convention-based formatting/parsing methods for simple objects [SPR-6074] #10742
- Improve method naming in MethodParameter class [SPR-6055] #10724
- Add support for arrays in EL Selections and Projections [SPR-6051] #10720
- ApplicationListener callbacks to be supported for inner beans as well [SPR-6049] #10718
- [JPA] [EclipseLink] - Spring filters various packages in JPA temp class loader, prevent weaving of any models in these packages [SPR-6040] #10709
- HSQLDB+Quarz using data source causes "Unexpected token: FOR in statement " exception [SPR-6038] #10707
- Data Binder: Auto-grow collections as needed to support nested property binding [SPR-6033] #10702
- Data Binder: Add support for auto-instantiating null values in nested paths [SPR-6032] #10701
- Overriding DocumentDefaultsDefinitions retrieval from root element attributes [SPR-6010] #10678
- Load-Time Weaving does not work in JBoss AS 5 [SPR-5764] #10434
- Provide dedicated ApplicationContext implementations for use with (JavaConfig)
@Configuration
classes [SPR-5682] #10353 - Support BeanFactory#getBean(Class requiredType) [SPR-5529] #10200
- Spring expression: please provide additional convenience operators for comparisons [SPR-5518] #10189
- Spring MVC views.properties uses xl.(class) syntax [SPR-5430] #10104
- Spring inconsistently resolves an overloaded setter method [SPR-4931] #9606
- Add name attribute to XML namespaces that want to support it (through parser base class) [SPR-4783] #9460
- AbstractJmsListeningContainer should provide an easy way to start the container after the ApplicationContext has been fully initialized [SPR-4716] #9393
- Improve context-property-placeholder configurablity [SPR-4661] #9338
- ArgPreparedStatementSetter: extract setValue(ps, position, value) [SPR-3978] #8658
- extract JdbcTemplate.newArgPreparedStatementSetter(args) [SPR-3977] #8657
- Make it easier to disallow bean definition overriding [SPR-3734] #8415
- scope (& similar attributes) on abstract beans should be inherited in child beans, or not permitted [SPR-3542] #8225
- Thread safe date format/parse API [SPR-2300] #6989
- Circular dependence forbidding cannot be easily configured. [SPR-2048] #6741
🪲 Bug Fixes
- Multiple constructor-arg with same index=0 withing the same bean element does not throw exception [SPR-6329] #10995
- Regression: ResourceEditor in 3.0 does not ignore unresolvable placeholders, but it did in 2.5.6 [SPR-6321] #10987
- ModelAndViewAssert.assertViewName() is not nullsafe [SPR-6300] #10966
- Spring:url tag should not use application/x-www-form-urlencoded encoding [SPR-6296] #10962
- Documentation Inconsistency - Required version of Tiles [SPR-6293] #10959
- RequestContextListener initializes Log4J ahead of call to Log4jConfigListener [SPR-6288] #10955
- getenv.* : Access denied (java.lang.RuntimePermission getenv.*) [SPR-6287] #10954
- scope of javax.servlet in portlet pom is compile instead of provided [SPR-6284] #10951
- CookieGenerator.DEFAULT_COOKIE_MAX_AGE is no longer available. Not backwards compatible [SPR-6276] #10943
- CronSequenceGenerator wrong trigger time on rollover when lower order bits specified [SPR-6273] #10940
- SimpleJdbcInsert.executeAndReturnKey Fails for HSQLDB version 1.9.0 [SPR-6266] #10934
- PropertyPlaceholderConfigurer xml configuration example error in pdf reference [SPR-6257] #10925
- Accept header should not be mandatory for properly handling response body. [SPR-6248] #10916
- Multipart Content-Type charset is ignored in CommonsFileUploadSupport. [SPR-6247] #10915
- Velocity MethodInvocationExceptions not properly reported [SPR-6246] #10914
- org.springframework.expression.ParseException loses position & Throwable information [SPR-6239] #10907
- correct reference documentation for ResourceBundleViewResolver [SPR-6224] #10892
- MVC Code example error in Chapter 15.3 [SPR-6217] #10885
- Using
@ResponseBody
throws HttpMediaTypeNotAcceptableException when it supports writing an acceptable MediaType [SPR-6214] #10882 - DisposableBeanAdapter throws NPE for default-destroy-method [SPR-6211] #10879
- When looking up methods with
@RequestMapping
annotation, unannotated bridge methods are included [SPR-6206] #10874 - GenericFormatterRegistry: unable to use custom ConversionService [SPR-6200] #10868
- GenericFormatterRegistry: unable to register formatters for primitive types [SPR-6199] #10867
- NPE in GenericConversionService.findConverterByClassPair(Class, Class) [SPR-6197] #10865
- GenericConversionService: unable to autowire list types [SPR-6196] #10864
- Binding Enum values to beans broken in Spring 3 RC1 [SPR-6190] #10858
- UriTemplate: Insufficient handling of characters that need to be escaped. [SPR-6188] #10856
- integration-tests should not be included in the packaged distribution [SPR-6183] #10851
- GenericConversionService converts to null when targetType is a primitive resulting in binding error [SPR-6179] #10847
- HttpHeadersTests fails with non-english locale [SPR-6177] #10845
- "Registering field-specific Formatters" section is not in sync with the codebase [SPR-6171] #10839
- CronSequenceGenerator bug scheduling next date when using day of week [SPR-6170] #10838
- WebSphereUowTransactionManager doesn't suspend synchronizations correctly [SPR-6167] #10835
- Using ignoreAcceptHeader and defaultContentType together causes problems. [SPR-6163] #10831
- Task namespace usage should not require concurrent backport JARs [SPR-6161] #10829
- XFire 1.2.6 not compatible with Spring 3.0's CustomEditorConfigurer [SPR-6157] #10825
- ControllerClassNameHandlerMapping's bug [SPR-6153] #10821
- BeanPostProcessor callbacks don't work as expected for
@PostConstruct
annotated methods [SPR-6066] #10734 - SPEL: Null-safeness of boolean operators [SPR-6059] #10727
- org.springframework.beans.propertyeditors.URIEditor does double escaping for % signes for URIs that contain a schema [SPR-6005] #10673
- StatementCreatorUtils.setNull throws exception in Derby Client driver [SPR-6000] #10668
- CustomEditorConfigurer functionality regression in 3.0 [SPR-5971] #10639
- Confusing/wrong error message when
@Autowire
fails using the wrong@Qualifier
[SPR-5912] #10581 - Regression: AnnotationMetadataReadingVisitor doesn't consider annotation method returning classes (SPR-5477) [SPR-5827] #10497
- TransactionAwareDataSourceProxy leaks connections [SPR-5780] #10450
- CustomEditorConfigurer compatibility breakage in 3.0 [SPR-5773] #10443
- XML bean definition "import" directive doesn't work with custom resource loader [SPR-5762] #10432
- TransactionSynchronizationUtils.unwrapResourceIfNecessary() does not unwrap scoped SessionFactory [SPR-5671] #10342
📔 Documentation
- Add coverage of JSON support to reference guide [SPR-6340] #11006
- Typo in section 3.3.1.1 (Aliasing a bean outside the bean definition) of the reference manual [SPR-6220] #10888
- Typo in section 2.5.2 (Spring Expression Language) of the reference manual [SPR-6219] #10887
- support for multiple transaction managers with
@Transactional
/ tx:annotation-driven needs to be documented [SPR-6205] #10873 - API docs advertise JPA methods that never materialized [SPR-6160] #10828
- Add documentation to Spring MVC/JSP/JSTL integration regarding webapp versions [SPR-3695] #8376
- Create single page version of the Spring Reference Documentation and punt it onto the main Spring website. [SPR-3584] #8266