hessian 多个接口接口调用Service,Service中注入的Mapper为空,项目本地调用Service,Mapper不为空,求大佬

spring - Reque nested exception is java.lang.NullPointerException - Stack Overflow
to customize your list.
Join Stack Overflow to learn, share knowledge, and build your career.
or sign in with
i created a form and on post i want to save those values to the database and show the saved values on the page.
i am new to spring mvc and hence i am not understanding where i am going wrong.
Here is the StackTrace -
org.springframework.web.util.NestedServletException: Reque nested exception is java.lang.NullPointerException
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:894)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
root cause
java.lang.NullPointerException
com.projects.data.HomeController.addCustomer(HomeController.java:36)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:601)
org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176)
org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:436)
org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:424)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
note The full stack trace of the root cause is available in the VMware vFabric tc Runtime 2.7.2.RELEASE/7.0.30.A.RELEASE logs.
Model class
package com.projects.
import javax.persistence.E
import javax.persistence.Id;
import javax.persistence.T
@Table(name="customer")
public class Customer {
public Customer()
public Customer(int custid,String name,int age)
this.custid=
this.name=
//Getters And Setters
public int getCustid() {
public void setCustid(int custid) {
this.custid =
public String getName() {
public void setName(String name) {
this.name =
public int getAge() {
public void setAge(int age) {
this.age =
package com.projects.
import org.hibernate.SessionF
import org.springframework.beans.factory.annotation.A
import org.springframework.stereotype.R
import com.projects.model.C
@Repository
public class CustomerDao {
@Autowired
private SessionFa
public SessionFactory getSessionfactory() {
public void setSessionfactory(SessionFactory sessionfactory) {
this.sessionfactory =
public int save(Customer customer)
return (Integer) sessionfactory.getCurrentSession().save(customer);
servlet-context.xml
&?xml version="1.0" encoding="UTF-8"?&
&beans:beans xmlns="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"&
&!-- DispatcherServlet Context: defines this servlet's request-processing infrastructure --&
&!-- Enables the Spring MVC @Controller programming model --&
&annotation-driven /&
&!-- Handles HTTP GET requests for /resources/** by efficiently serving up static resources in the ${webappRoot}/resources directory --&
&resources mapping="/resources/**" location="/resources/" /&
&!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/views directory --&
&beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"&
&beans:property name="prefix" value="/WEB-INF/views/" /&
&beans:property name="suffix" value=".jsp" /&
&/beans:bean&
&context:component-scan base-package="com.projects.model" /&
&beans:bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource"&
&beans:property name="driverClassName" value="com.mysql.jdbc.Driver" /&
&beans:property name="url" value="jdbc:mysql://localhost:3306/customerdb" /&
&beans:property name="username" value="root" /&
&beans:property name="password" value="root" /&
&/beans:bean&
&beans:bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"&
&beans:property name="dataSource" ref="dataSource" /&
&beans:property name="packagesToScan" value="com.projects.model" /&
&beans:property name="hibernateProperties"&
&beans:props&
&beans:prop key="hibernate.dialect"&org.hibernate.dialect.MySQLDialect&/beans:prop&
&beans:prop key="hibernate.show_sql"&true&/beans:prop&
&/beans:props&
&/beans:property&
&/beans:bean&
&beans:bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"&
&beans:property name="sessionFactory" ref="sessionFactory" /&
&/beans:bean&
&/beans:beans&
Controller class
package com.projects.
import java.text.DateF
import java.util.D
import java.util.L
import org.slf4j.L
import org.slf4j.LoggerF
import org.springframework.stereotype.C
import org.springframework.ui.M
import org.springframework.ui.ModelM
import org.springframework.validation.BindingR
import org.springframework.web.bind.annotation.ModelA
import org.springframework.web.bind.annotation.RequestM
import org.springframework.web.bind.annotation.RequestM
import com.projects.model.CustomerD
import com.projects.model.C
* Handles requests for the application home page.
@Controller
public class HomeController {
private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
* Simply selects the home view to render by returning its name.
private CustomerD
@RequestMapping(value = "/", method = RequestMethod.GET)
public String customer(Locale locale, Model model) {
logger.info("Welcome home! The client locale is {}.", locale);
Customer customer=new Customer();
model.addAttribute(customer);
return "home";
@RequestMapping(value = "/customer", method = RequestMethod.POST)
public String addCustomer(@ModelAttribute("customer") Customer customer, ModelMap model) {
model.addAttribute("custid", customer.getCustid());
model.addAttribute("name",customer.getName());
model.addAttribute("age", customer.getAge());
dao.save(customer);
return "customer/customer";
View Files
//home.jsp
&%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %&
&%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%&
&%@ page session="false" %&
&title&Home&/title&
&form:form action="${customer}" method="post" modelAttribute="customer"&
&form:label path="custid"&Id:&/form:label&
&form:input path="custId"/& &br&
&form:label path="name"&Name:&/form:label&
&form:input path="name"/& &br&
&form:label path="age"&Age:&/form:label&
&form:input path="age"/& &br&
&input type="submit" value="Save"/&
//customer.jsp
&%@ page language="java" contentType="text/ charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%&
&!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&
&meta http-equiv="Content-Type" content="text/ charset=ISO-8859-1"&
&title&Submitted Information&/title&
&h2&Submitted Information&/h2&
&td&Cust id&/td&
&td&${custid}&/td&
&td&Name&/td&
&td&${name}&/td&
&td&Age&/td&
&td&${age}&/td&
After i click the save button i get the above mentioned error.Please help me resolve this.
Seems to be a problem in your form. At least, the inputs must be given the name attributes:
&form method="post" action="&c:url value='/customer/'/&"&
&input type="text" name="custid"&
&input type="text" name="name"&
&input type="text" name="age"&
&input type="submit" value="Save"&
But since you are using Spring, it is preferable to use the Spring forms (and spring url's also):
&spring:url var="customer" value="/customer"/&
&form:form action="${customer}" method="post" modelAttribute="customer"&
&form:label path="custid"&Id:&/form:label&
&form:input path="custId"/& &br&
&form:label path="name"&Name:&/form:label&
&form:input path="name"/& &br&
&form:label path="age"&Age:&/form:label&
&form:input path="age"/& &br&
&input type="submit" value="Save"/&
&/form:form&
And you should initialize dao!
@Autowired
private CustomerD
1,84611330
Your Answer
Sign up or
Sign up using Google
Sign up using Facebook
Post as a guest
Post as a guest
By posting your answer, you agree to the
Not the answer you're looking for?
Browse other questions tagged
Stack Overflow works best with JavaScript enabledSPRING FRAMEWORK CHANGELOG
===========================
http://www.spring.io
Changes in version 3.2.6 ()
-------------------------------------
* added Maven bill-of-materials POM
* fixed BeanUtils.copyProperties() issue caused by recently changes to GenericTypeAwarePropertyDescriptor (SPR-11209)
* fixed issue with ServletTestExecutionListener breaking existing code (SPR-11144)
* fixed SpEL ReflectivePropertyAccessor to not consider "is" methods with non boolean returns (SPR-11142)
* support multiple comma-separated values in X-Forwarded-Host header (SPR-11140)
* fixed tests related to java.beans.BeanInfo changes in JDK8-b117 (SPR-11139)
* added synchronization to EhCacheFactoryBean.afterPropertiesSet (SPR-11132)
* fixed dependency injection issue when using ManagedMap or ManagedList in BeanDefinitionParser (SPR-11131)
* fixed support for combining multiple @Cacheable within @Caching annotation (SPR-11124)
* allow autowire qualified scoped-proxy @Bean definitions (SPR-11116)
* fixed type resolution fails for uninitialized factory-method declaration issue (SPR-11112)
* fixed "CglibAopProxy: Unable to proxy method" warning when bean class contains static final method (SPR-11107)
* improved performance for repeated JDBC 3.0 getParameterType calls in StatementCreatorUtils (SPR-11100)
* fixed minor issue with prior fix for CVE
(SPR-11098)
* added mapping for additional Sybase error code to DataIntegrityViolationException (SPR-11097)
* fixed issue with "!profile" selector XML (SPR-11093)
* fixed set statistics issues with EhCache (SPR-11092, SPR-11080)
* fixed classpath scanning issue on private meta-attributes (SPR-11091)
* fixed potential NPE when calling stored procedures (SPR-11076)
* added synchronization to MBeanExporter & MBeanRegistrationSupport (SPR-11002)
* removed integer conversion from JmsListenerContainerParser (SPR-10986)
* fixed @ResourceMapping issue with Portlets (SPR-10791)
Changes in version 3.2.5 ()
-------------------------------------
* fixed type prediction for generic factory method with conversion of method arguments (SPR-10411)
* fixed GenericTypeResolver issues relating to ParameterizedType (SPR-10819)
* allow indexed constructors to be used with @Autowire resolution (SPR-11019)
* refined JavaConfig overrides algorithm (SPR-10988, SPR-10992)
* fixed multiple calls to @Autowire setters when defining several beans of the same class (SPR-11027)
* provided more lenient fallback checks for setter injection (SPR-10995)
* allowed AnnotationConfigWebApplicationContext.register to be called multiple times (SPR-10852)
* fixed various SpEL issues (SPR-9495, SPR-10452, SPR-10928, SPR-10884, SPR-10953, SPR-10716, SPR-10486, SPR-11031)
* added XStream catch-all converter (SPR-10821)
* fixed issue with AOP Advisor being silently skipped during creation (SPR-10430)
* fixed use of configured prefix for Jackson message converters (SPR-10817)
* fixed SimpleJdbcCall function return issues (SPR-10606)
* protected against memory leak in AntPathMatcher (SPR-10803)
* fixed memory leak in AbstractBeanFactory (SPR-10896)
* fixed Ehcache RMI replication issue (SPR-10904)
* fixed ArrayStoreException with ASM reading of enum subclass (SPR-10914)
* prevented duplicate scan of @Import annotations (SPR-10918)
* fixed issues using non-shareable @Resource (SPR-10931)
* ensured malformed content type is translated to 415 status code (SPR-10982)
* fixed issues when converting a single element array to object (SPR-10996)
* allow override of @ContextConfiguration initializer when using @ContextHierarchy (SPR-10997)
* fixed issue with ordering of @PropertySource values (SPR-10820)
* fixed parsing issues with JNDI variables (SPR-11039)
* fixed MockHttpServletRequestBuilder handling parameter without value (SPR-11043)
* fixed ClasspathXmlApplicationContext inherit/merge of parent context environment (SPR-11068)
* fixed wrong translation of MS SQL error code (SPR-10902)
* fixed JMSTemplate issues when used with Oracle AQ (SPR-10829)
* fixed AbstractMethodMockingControl off-by-one error (SPR-10885)
* fixed potential NPE with JaxB2Marshaller (SPR-10828)
* fixed potential NPE with RestTemplate (SPR-10848)
* fixed potential NPE in AbstractApplicationEventMulticaster (SPR-10945)
* fixed potential NPE with RedirectView (SPR-10937)
* fixed NPE with ExtendedBeanInfo on IBM J9 VM (SPR-10862)
* improved subclassing support for RequestMappingHandlerMapping (SPR-10950)
* made AnnotationConfigUtils.processCommonDefinitionAnnotations public (SPR-11032)
* removed unnecessary char[] allocation with NamedParameterUtils (SPR-11042)
* refined logging output (SPR-10974, SPR-11017)
* minor documentation updates (SPR-10798, SPR-10850, SPR-10927)
Changes in version 3.2.4 ()
-------------------------------------
* fixed potential security risk when using Spring OXM with JAXB (SPR-10806)
* support for Quartz 2.2 (SPR-10775)
* updated spring-instrument manifest to include JDK 7 redefine/retransform attributes (SPR-10731)
* TypeDescriptor class is marked as Serializable now (SPR-10631)
* ConfigurationClassPostProcessor is Ordered.HIGHEST_PRECEDENCE now (SPR-10645)
* @ImportResource supports ${...} placeholders as well (SPR-10686)
* BeanFactory's getBeansWithAnnotation ignores abstract bean definitions (SPR-10672)
* fixed regression with non-String value attributes on custom stereotypes (SPR-10580)
* fixed regression in nested placeholder resolution in case of ignoreUnresolvablePlaceholders (SPR-10549)
* fixed SpEL's MethodExecutor to correctly cache overloaded methods (SPR-10684)
* fixed ClassFilterAwareUnionMethodMatcher equals implementation (SPR-10604)
* introduced latest CGLIB UndeclaredThrowableStrategy changes for better memory usage (SPR-10709)
* fixed regression with AspectJ-based @Async handling in case of no executor set (SPR-10715)
* proper parsing of JPA's "exclude-unlisted-classes" element with a nested "true"/"false" value (SPR-10767)
* resource-based PlatformTransactionManager implementations defensively handle Errors on begin (SPR-10755)
* re-introduced RmiInvocationWrapperRTD.xml for WebLogic which has been missing in 3.2 (SPR-10649)
* Jaxb2Marshaller scans for @XmlRegistry annotation as well (SPR-10714)
* XStreamMarshaller's "getXStream() method is non-final again (SPR-10421)
* DelegatingFilterProxy avoids synchronization for pre-resolved delegate (SPR-10413)
* fixed regression in @RequestParam empty value handling (SPR-10578)
* fixed ResourceHttpRequestHandler's locations-list-empty warn log (SPR-10780)
* fixed ContentNegotiatingViewResolver regression in case of no content type requested (SPR-10683)
* fixed MappingJackson(2)JsonView's handling of a prefixJson="false" value (SPR-10752)
* added configurable JSON prefix handling to MappingJackson(2)HttpMessageConverter (SPR-10627)
* several UriComponentsBuilder refinements (SPR-10779, SPR-10701)
* several HttpHeaders refinements (SPR-10713, SPR-10648)
Changes in version 3.2.3 ()
-------------------------------------
* compatibility with OpenJDK 8 for target 1.5/1.6/1.7 compiled Spring Framework 3.2.x applications (SPR-9639)
* compatibility with OSGI-style use of generics in source code that got compiled to 1.4 byte code (SPR-10559)
* consistent detection of Order annotation in superclasses and interfaces (SPR-10514)
* fixed regression with type detection for child bean definitions (SPR-10374)
* fixed configuration class overriding in terms of superclasses (SPR-10546)
* minimized ASM usage during configuration class processing (SPR-10292)
* added public "getName()" accessor to MethodReference (SPR-10422)
* fixed ReflectiveMethodResolver to avoid potential UnsupportedOperationException on sort (SPR-10392)
* JdbcTemplate defensively uses JDBC 3.0 getParameterType call for Oracle driver compatibility (SPR-10385)
* introduced public ArgumentPreparedStatementSetter and ArgumentTypePreparedStatementSetter classes (SPR-10375)
* fixed BeanPropertyRowMapper to only prefix actual upper-case letters with underscores (SPR-10547)
* HibernateJpaDialect supports Hibernate 4.2 as a JPA provider now (SPR-10395)
* fixed Jaxb2Marshaller's partial unmarshalling feature to consistently apply to all sources (SPR-10282)
* ContentNegotiationManager properly handles HttpMessageConverter checking for Accept header "*/*" (SPR-10513)
* SimpleMappingExceptionResolver prefers longer mapping expression in case of same exception depth (SPR-9639)
* ServletContextResourcePatternResolver supports Tomcat-style "foo#bar.war" deployment unit names (SPR-10471)
* fixed potential deadlock with DeferredResult timeout handling on Tomcat (SPR-10485)
* fixed regression with ResourceHttpMessageConverter accidentally not closing underlying files (SPR-10460)
* fixed regression with JSP form tag prepending the context/servlet path (broke use for P SPR-10382)
* added "jsonPrefix" property to MappingJackson(2)JsonView, allowing for a custom prefix (SPR-10567)
* changed MappingJackson(2)JsonView's "writeContent" template method to include "jsonPrefix" String (SPR-10567)
Changes in version 3.2.2 ()
-------------------------------------
* official support for Hibernate 4.2 (SPR-10255)
* fixed missing inter-dependencies in module POMs (SPR-10218)
* marked spring-web module as 'distributable' in order for session replication to work on Tomcat (SPR-10219)
* DefaultListableBeanFactory caches target type per bean definition and allows for specifying it in advance (SPR-10335)
* DefaultListableBeanFactory clears by-type matching cache on runtime register/destroySingleton calls (SPR-10326)
* ConfigurationClassPostProcessor consistently uses ClassLoader, not loading core JDK annotations via ASM (SPR-10249)
* ConfigurationClassPostProcessor detects covariant return type mismatch, avoiding infinite recursion (SPR-10261)
* ConfigurationClassPostProcessor allows for overriding of scoped-proxy bean definitions (SPR-10265)
* "depends-on" attribute on lang namespace element actually respected at runtime now (SPR-8625)
* added locale-independent "commonMessages" property to AbstractMessageSource (SPR-10291)
* added "maximumAutoGrowSize" property to SpelParserConfiguration (SPR-10229)
* allow for ordering of mixed AspectJ before/after advices (SPR-9438)
* added "beforeExistingAdvisors" flag to AbstractAdvisingBeanPostProcessor (SPR-10309)
* MethodValidation/PersistenceExceptionTranslationPostProcessor apply after existing advisors by default (SPR-10309)
* fixed regression in SpringValidatorAdapter's retrieval of invalid values (SPR-10243)
* support 'unless' expression for cache veto (SPR-8871)
* @Async's qualifier works for target class annotations behind a JDK proxy as well (SPR-10274)
* @Scheduled provides String variants of fixedDelay, fixedRate, initialDelay for placeholder support (SPR-8067)
* refined CronSequenceGenerator's rounding up of seconds to address second-specific cron expressions (SPR-9459)
* @Transactional in AspectJ mode works with CallbackPreferringPlatformTransactionManager (WebSphere) as well (SPR-9268)
* LazyConnectionDataSourceProxy catches setReadOnly exception analogous to DataSourceUtils (SPR-10312)
* SQLErrorCodeSQLExceptionTranslator tries to find SQLException with actual error code among causes (SPR-10260)
* added "createTemporaryLob" flag to DefaultLobHandler, using JDBC 4.0's createBlob/Clob mechanism (SPR-10339)
* deprecated OracleLobHandler in favor of DefaultLobHandler for the Oracle 10g driver and higher (SPR-10339)
* deprecated (NamedParameter)JdbcTemplate's queryForInt/Long operations in favor of queryForObject (SPR-10257)
* added useful query variants without parameters to NamedParameterJdbcTemplate, for convenience in DAOs (SPR-10256)
* "packagesToScan" feature for Hibernate 3 and Hibernate 4 detects annotated packages as well (SPR-7748, SPR-10288)
* HibernateTransactionManager for Hibernate 4 supports "entityInterceptor(BeanName)" property (SPR-10301)
* DefaultJdoDialect supports the JDO 2.2+ isolation level feature out of the box (SPR-10323)
* DefaultMessageListenerContainer invokes specified ExceptionListener for recovery exceptions as well (SPR-10230)
* DefaultMessageListenerContainer logs recovery failures at error level and exposes "isRecovering()" method (SPR-10230)
* added "mappedClass" property to Jaxb2Marshaller, introducing support for partial unmarshalling (SPR-10282)
* added "entityResolver", "classDescriptorResolver", "doctypes" and further properties to CastorMarshaller (SPR-8470)
* deprecated CastorMarshaller's "object" property in favor of "rootObject" (SPR-8470)
* MediaType throws dedicated InvalidMediaTypeException instead of generic IllegalArgumentException (SPR-10226)
* DispatcherServlet allows for customizing its RequestAttributes exposure in subclasses (SPR-10342)
* AbstractCachingViewResolver does not use global lock for accessing existing View instances anymore (SPR-3145)
* MappingJackson(2)JsonView allows subclasses to access the ObjectMapper and to override content writing (SPR-7619)
* Tiles 3 TilesConfigurer preserves standard EL support for "completeAutoload" mode as well (SPR-10361)
* Log4jWebConfigurer supports resolving placeholders against ServletContext init-parameters as well (SPR-10284)
* consistent use of LinkedHashMaps and independent getAttributeNames Enumeration in Servlet/Portlet mocks (SPR-10224)
* several MockMvcBuilder refinements (SPR-10277, SPR-10279, SPR-10280)
* introduced support for context hierarchies in the TestContext framework (SPR-5613)
* introduced support for WebApplicationContext hierarchies in the TestContext framework (SPR-9863)
Changes in version 3.2.1 ()
--------------------------------------
* SpEL support for static finals on interfaces (SPR-10125)
* AnnotationAwareOrderComparator is able to sort Class objects as well (SPR-10152)
* added dedicated sort method to AnnotationAwareOrderComparator (SPR-9625)
* BridgeMethodResolver properly handles bridge methods in interfaces (SPR-9330)
* LocalVariableTableParameterNameDiscoverer works for bridge methods as well (SPR-9429)
* added constructor with Charset argument to EncodedResource (SPR-10096)
* ResourcePropertyResource accepts EncodedResource for properties files with a specific encoding (SPR-10096)
* SystemEnvironmentPropertySource properly works with an active JVM SecurityManager (SPR-9970)
* CachedIntrospectionResults.clearClassLoader(null) removes cached classes for the system class loader (SPR-9189)
* DisposableBeanAdapter detects "shutdown" as a destroy method as well (for EHCache CacheM SPR-9713)
* introduced NoUniqueBeanDefinitionException as a dedicated subclass of NoSuchBeanDefinitionException (SPR-10194)
* DefaultListableBeanFactory's getBean(Class) checks primary marker in case of multiple matches (SPR-7854)
* fixed QualifierAnnotationAutowireCandidateResolver's detection of custom qualifier annotations (SPR-10107)
* fixed AbstractAutoProxyCreator to accept null bean names again (SPR-10108)
* AbstractAdvisingBeanPostProcessor caches per bean target class, working for null bean names as well (SPR-10144)
* MessageSourceResourceBundle overrides JDK 1.6 containsKey method, avoiding NPE in getKeys (SPR-10136)
* SpringValidationAdapter properly detects invalid value for JSR-303 field-level bean constraints (SPR-9332)
* SpringBeanAutowiringInterceptor eagerly releases BeanFactory if post-construction fails (SPR-10013)
* added "exposeAccessContext" flag to JndiRmiClientInterceptor/ProxyFactoryBean (for WebL SPR-9428)
* MBeanExporter does not log warnings for manually unregistered MBeans (SPR-9451)
* MBeanInfoAssembler impls expose actual method parameter names if possible (SPR-9985)
* AbstractCacheManager accepts no caches defined, allowing for EHCache default cache setup (SPR-7955)
* EhCacheManagerFactoryBean applies cacheManagerName ahead of creation (for EHCache 2.5 SPR-9171)
* ThreadPoolExecutorFactoryBean exposes "createExecutor" method for custom ThreadPoolExecutor subclasses (SPR-9435)
* added "awaitTerminationSeconds" property to ThreadPoolTaskExecutor/ThreadPoolTaskScheduler (SPR-5387)
* aligned XML scheduled-task elements with @Scheduled in terms of kicking in after context refresh (SPR-9231)
* reintroduced "mode" and "proxy-target-class" attributes in spring-task-3.1/3.2.xsd (SPR-10177)
* spring-task-3.2.xsd allows for SpEL expressions in initial-delay attribute (SPR-10102)
* spring-jms-3.2.xsd allows for SpEL expressions in prefetch and receive-timeout attributes (SPR-9553)
* JmsTemplate uses configured receiveTimeout if shorter than remaining transaction timeout (SPR-10109)
* added MappingJackson2MessageConverter for JMS (SPR-10099)
* JDBC parameter binding uses JDBC 3.0 ParameterMetaData (if available) for type determination (SPR-10084)
* JpaTransactionManager etc finds default EntityManagerFactory in parent context as well (SPR-10160)
* MimeMessageHelper encodes attachment filename if not ASCII compliant (SPR-9258)
* FreeMarkerConfigurationFactory properly supports TemplateLoaders when recreating Configurations (SPR-9389)
* SpringContextResourceAdapter implements equals/hashCode according to the JCA 1.5 contract (SPR-9162)
* ContextLoader properly detects pre-refreshed WebApplicationContext (SPR-9996)
* added support for placeholders in @RequestMapping annotation value (SPR-9935)
* added support for specifying a message code as @ResponseStatus reason (SPR-6044)
* HttpEntityMethodProcessor supports HttpEntity/ResponseEntity subclasses as well (SPR-10207)
* Tiles 3 TilesConfigurer properly works in combination with "completeAutoload" (SPR-10195)
* Spring MVC Test framework supports HTTP OPTIONS method as well (SPR-10093)
* MockHttpServletRequest's getParameter(Values) returns null for null parameter name (SPR-10192)
* MockHttpServletResponse's getHeaderNames declares Collection instead of Set for Servlet 3.0 compatibility (SPR-9885)
Changes in version 3.2 GA ()
--------------------------------------
* upgraded Spring Framework build to AspectJ 1.7.1, JUnit 4.11, Groovy 1.8.8, JRuby 1.6.5, Joda-Time 2.1
* checked compatibility of Spring's Velocity support with Velocity 1.7 and Velocity Tools 2.0
* checked compatibility of Spring's JasperReports support with JasperReports 5.0
* added unit tests for Spring's Hibernate 4 support
* deprecated Apache iBATIS support in favor of native Spring support in Mybatis (the iBATIS successor)
* deprecated JSF 1.1 VariableResolver implementations in favor of Spring-provided JSF 1.2 ELResolvers
* deprecated BeanReferenceFactoryBean and CommonsLogFactoryBean
* DeprecatedBeanWarner detects deprecated FactoryBean classes and always logs user-specified bean type
* fixed CGLIB proxy class leaks through further equals/hashCode implementations in Spring AOP pointcuts (SPR-8008)
* ConfigurationClassPostProcessor consistently uses ClassLoader, not loading core JDK classes via ASM (SPR-10058)
* SpEL indexer uses direct access to specific List elements instead of iterating over the Collection (SPR-10035)
* DefaultMessageListenerContainer allows for concurrent subscription consumers on WebLogic/ActiveMQ (SPR-10037)
* DefaultMessageListenerContainer clears resources of paused tasks when shutting down after stop (SPR-10092)
* tx timeouts for JPA translate to "javax.persistence.query.timeout" only (for EclipseL SPR-10068)
* ResourceDatabasePopulator and JdbcTestUtils now support comments within SQL statements (SPR-10075, SPR-9982)
* AbstractCachingViewResolver uses a cache limit of 1024 by default, avoiding overflow for redirect URLs (SPR-10065)
* fixed HierarchicalUriComponents equals implementation (SPR-10088)
Changes in version 3.2 RC2 ()
---------------------------------------
* overhauled non-void JavaBean write method support (SPR-10029)
* CachedIntrospectionResults uses full WeakReference for any non-safe ClassLoader arrangement (SPR-10028)
* DefaultListableBeanFactory avoids wide/interleaved metadata locks to avoid deadlock potential (SPR-10020)
* DefaultListableBeanFactory avoids singletonObjects lock wherever possible for non-singleton performance (SPR-9819)
* DefaultListableBeanFactory doesn't cache for autowireBean calls anymore, avoiding ClassLoader leaks (SPR-8956)
* Java 5 Closeable's and Java 7 AutoCloseable's "close()" automatically detected as destroy methods (SPR-10034)
* @Bean destroy method inference not applying for DisposableBean implementers (avoiding double destruction)
* @Lazy and @DependsOn not marked as @Inherited anymore - only supported on actual bean types (SPR-9589, SPR-9476)
* AsyncAnnotationBean/MethodValidation/PersistenceExceptionTranslationPostProcessor cache eligible beans (SPR-7328)
* ConfigurableApplicationContext, LobCreator and Client/ServerHttpResponse implement Closeable for Java 7 (SPR-9962)
* spring-jms-3.2.xsd declares former nmtoken attributes as string, allowing for placeholders (SPR-9597)
* ResourceDatabasePopulator explicitly closes its LineNumberReader (SPR-9912)
* introduced TransactionAwareCacheManagerProxy for cache put synchronization with Spring transactions (SPR-9966)
* added "transactionAware" bean property to EhCacheCacheManager and JCacheCacheManager (SPR-9966)
* moved "cache.ehcache" and "cache.jcache" packages from spring-context to spring-context-support module
* deprecated "scheduling.backportconcurrent" package in favor of native JDK 6 "scheduling.concurrent" support
* deprecated Oracle OC4J support (OC4JJtaTransactionManager, OC4JLoadTimeWeaver) in favor of Oracle WebLogic
* deprecated ExpressionEvaluationUtils, turning off Spring's own JSP expression support in favor of JSP 2.0
* deprecated EJB 2.x implementation class hierarchy in "ejb.support" package
* deprecated DefaultAnnotationHandlerMapping and AnnotationMethodHandlerAdapter/ExceptionResolver (SPR-10005)
* Hibernate 4 support independently compiled against Hibernate 4.1, avoiding the use of reflection (SPR-10039)
* added integration with Tiles 3 (SPR-8825)
Changes in version 3.2 RC1 ()
---------------------------------------
* added "getApplicationName()" method to ApplicationContext interface
* introduced LiveBeansView MBean and LiveBeansViewServlet (SPR-9662)
* ResourceBundleMessageSource supports "defaultEncoding", "fallbackToSystemLocale", "cacheSeconds" (SPR-7392)
* BeanWrapper does not fall back to String constructor if ConversionService attempt failed before (SPR-9865)
* @Autowired, @Value, and qualifiers may be used as meta-annotations for custom injection annotations (SPR-9890)
* @DateTimeFormat may now be used as a meta-annotation for custom formatting annotations
* allow replaced-method 'arg-type' matches against element body as well as 'match' attribute (SPR-9812)
* fixed potential race condition in concurrent calling of autowired methods on a prototype bean (SPR-9806)
* cancel on a Future returned by a TaskScheduler works reliably (SPR-9821)
* LoadTimeWeaverAware beans are consistently being created early for JPA weaving to work reliably (SPR-9857)
* @ManagedResource supports placeholder resolution on all of its String properties (SPR-8244)
* Spring-backed DataSources consistently implement JDBC 4.0's Wrapper interface (SPR-9770, SPR-9856)
* optimized ResourceDatabasePopulator to work around JDK 1.7 substring performance regression (SPR-9781)
* JdbcTestUtils no longer interprets SQL comments as statements (SPR-9593)
* JPA persistence.xml files may use jar-file entries relative to the unit root (as per the JPA SPR-9797)
* added "jtaDataSource" property to JPA LocalContainerEntityManagerFactoryBean ( SPR-9883)
* Hibernate 4 LocalSessionFactoryBuilder sets thread context ClassLoader (for JBoss 7 SPR-9846)
* HttpComponentsHttpInvokerRequestExecutor uses HttpComponents 4.2 to explicitly release connections (SPR-9833)
* UriComponentsBuilder is capable of handling opaque URIs as well (SPR-9798)
* CookieGenerator supports "cookieHttpOnly" flag for Servlet 3.0 (SPR-9794)
* added Spring MVC Test framework (SPR-9859, SPR-7951)
* introduced support for loading a WebApplicationContext in the TestContext framework (SPR-5243)
* introduced support for session & request scoped beans in the TestContext framework (SPR-4588)
* introduced support for setting locales in MockHttpServletRequest (SPR-9724)
* improved regular expression for parsing query params (SPR-9832)
* added mock implementations of Http[Input|Output]Message
* MediaType's include method now recognizes wildcards in media types with a suffix (SPR-9841)
* added support for wildcard media types in AbstractView and ContentNegotiationViewResolver (SPR-9807)
* added support for opaque URIs in UriComponentsBuilder (SPR-9798)
* added ObjectToStringHttpMessageConverter that delegates to a ConversionService (SPR-9738)
* fixed NullPointerException in AbstractMessageConverterMethodProcessor (SPR-9868)
* fixed issue in AnnotationMethodHandlerExceptionResolver (SPR-9209)
* added CallableProcessingInterceptor and DeferredResultProcessingInterceptor
* added Jackson2ObjectMapperBeanFactory (SPR-9739)
* the Jackson message converters now include "application/*+json" in supported media types (SPR-7905)
* DispatcherPortlet uses a forward for rendering a view as resource response (SPR-9876)
* prevent duplicate @Import processing and ImportBeanDefinitionRegistrar invocation (SPR-9925)
* throw AopInvocationException on advice returning null for primitive type (SPR-4675)
* resolve Collection element types during conversion (SPR-9257)
* allow SpEL reserved words in type package names (SPR-9862)
* provide alternative message code resolver styles (SPR-9707)
* support conversion from Enum Interface (SPR-9692)
* bypass conversion when possible (SPR-9566)
* extend conditional conversion support (SPR-9928)
* introduce @EnableMBeanExport (SPR-8943)
* add StringToUUIDConverter (SPR-9765)
* allow MapToMap conversion even without a default constructor (SPR-9284)
* allow SpEL to resolve getter method against object of type Class (SPR-9017)
* prevent memory leaks with @Configuration beans (SPR-9851)
* support inferred base package for @ComponentScan (SPR-9586)
* sort candidate @AspectJ methods deterministically (SPR-9729)
* improve SimpleStreamingClientHttpRequest performance (SPR-9530)
* added UnknownHttpStatusCodeException (SPR-9406)
* support for custom global Joda DateTimeFormatters (SPR-7121)
* support DateTimeFormat annotation without Joda (SPR-6508)
* use concurrent cache to improve performance of GenericTypeResolver (SPR-8701)
* cache and late resolve annotations on bean properties to improve performance (SPR-9166)
* allow PropertyResolver implementations to ignore unresolvable ${placeholders} (SPR-9569)
* FormHttpMessageConverter now adds Jackson JSON converters if available on the classpath (SPR-10055)
Changes in version 3.2 M2 ()
--------------------------------------
* inlined ASM 4.0 into spring-core, removed spring-asm subproject and jar (SPR-9669)
* inlined CGLIB 3.0 into spring-core, eliminating external dependency (SPR-9669)
* spring-test module now depends on junit:junit-dep (SPR-6966)
* SpEL now supports method invocations on integers (SPR-9612)
* SpEL now supports case-insensitive null literals in expressions (SPR-9613)
* SpEL now supports symbolic boolean operators for OR and AND (SPR-9614)
* SpEL now supports nested double quotes in expressions (SPR-9620)
* SpEL now throws an ISE if a MethodFilter is registered against custom resolvers (SPR-9621)
* now using BufferedInputStream in SimpleMetaDataReader to double performance (SPR-9528)
* fixed cache handling for JNLP connections (SPR-9547)
* now inferring return type of generic factory methods (SPR-9493)
* added Field context variant to TypeConverter interface in beans module
* @Value injection works in combination with formatting rules such as @DateTimeFormat (SPR-9637)
* @Autowired-driven ObjectFactory/Provider resolution works in non-singleton beans as well (SPR-9181)
* @Resource processing properly works with scoped beans and prototypes again (SPR-9627)
* introduced "repeatCount" property in Quartz SimpleTriggerFactoryBean (SPR-9521)
* introduced "jtaTransactionManager" property in Hibernate 4 LocalSessionFactoryBean/Builder (SPR-9480)
* now raising RestClientException instead of IllegalArgumentException for unknown status codes
* introduced JacksonObjectMapperFactoryBean for configuring a Jackson ObjectMapper in XML
* introduced ContentNegotiationManager/ContentNegotiationStrategy for resolving requested media types
* introduced support for content negotiation options in MVC namespace and MVC Java config
* added ContentNegotiationManagerFactoryBean (SPR-8420)
* introduced support for the HTTP PATCH method in Spring MVC and RestTemplate (SPR-7985)
* enabled smart suffix pattern matching in @RequestMapping methods (SPR-7632)
* introduced "defaultCharset" property in StringHttpMessageConverter (SPR-9487)
* introduced @ExceptionResolver annotation for detecting classes with @ExceptionHandler methods
* moved RSS/Atom message converter registration ahead of Jackson/JAXB2
* now handling BindException in DefaultHandlerExceptionResolver
* now setting "javax.servlet.error.exception" in DefaultHandlerExceptionResolver (SPR-9653)
* added ResponseEntityExceptionHandler alternative to DefaultHandlerExceptionResolver (SPR-9290)
* now using reflection to instantiate StandardServletAsyncWebRequest
* fixed issue with forward before async request processing
* DeferredResult type is now parameterized
* added async options to MVC namespace and Java config (SPR-9694)
* refactored Spring MVC async support (SPR-9433)
* media types in HTTP Accept headers can be parsed with single quotes (-> Android 2.x) (SPR-8917)
* DispatcherPortlet no longer forwards event exceptions to the render phase by default (SPR-9287)
* fixed Portlet request mapping priorities in cross-controller case (SPR-9303, SPR-9605)
* introduced exclude patterns for mapped interceptors in MVC namespace and MVC Java config
* introduced support for ApplicationContextInitializers in the TestContext framework (SPR-9011)
* introduced support for named dispatchers in MockServletContext (SPR-9587)
* introduced support for single, unqualified tx manager in the TestContext framework (SPR-9645)
* introduced support for TransactionManagementConfigurer in the TestContext framework (SPR-9604)
* introduced MockEnvironment in the spring-test module (SPR-9492)
* deprecated SimpleJdbcTestUtils in favor of JdbcTestUtils (SPR-9235)
* introduced "countRowsInTableWhere()" and "dropTables()" in JdbcTestUtils (SPR-9235)
* introduced JdbcTemplate in tx base classes in the TestContext framework (SPR-8990)
* introduced "countRowsInTableWhere()" and "dropTables()" in tx base test classes (SPR-9665)
* introduced support for @ComponentScan base package inference (SPR-9586)
* now building, testing and publishing against JDK7, maintaining compat with JDKs 5&6 (SPR-9715)
* added support for filter registrations in AbstractDispatcherServletInitializer (SPR-9696)
* improved no-match handling for @RequestMapping methods (SPR-9603)
* added support for matrix variables (SPR-5499, SPR-7818)
* added support generic types in @RequestBody arguments (SPR-9570)
* added support for generic types in the RestTemplate (SPR-7023)
* added fix to decode target parameters prior to saving a FlashMap (SPR-9657)
* now allowing an Errors argument after @RequestBody and @RequestPart (SPR-7114)
* introduced @ControllerAdvice annotation (SPR-9112)
* added exclude patterns for mapped interceptors (SPR-6570)
* now ignoring parse errors in HttpPutFormContentFilter (SPR-9769)
* optimized performance of HandlerMethod (SPR-9747, SPR-9748)
* optimized performance of AntPathStringMatcher (SPR-9749)
* added support for Filters/Servlet invocation in MockFilterChain (SPR-9745)
Changes in version 3.2 M1 ()
--------------------------------------
* upgrade to AspectJ 1.6.12, JUnit 4.10, TestNG 6.5.2
* Servlet 3.0-based async support
* HttpMessageConverter and View types compatible with Jackson 2.0
* better handling on failure to parse invalid 'Content-Type' or 'Accept' headers
* handle a controller method's return value based on the actual returned value (vs declared type)
* fix issue with combining identical controller and method level request mapping paths
* fix concurrency issue in AnnotationMethodHandlerExceptionResolver
* fix case-sensitivity issue with some containers on access to 'Content-Disposition' header
* fix issue with encoded params in UriComponentsBuilder
* add pretty print option to Jackson HttpMessageConverter and View types
* translate IOException from Jackson to HttpMessageNotReadableException
* fix issue with resolving Errors controller method argument
* implement InitializingBean in RequestMappingHandlerMapping to detect controller methods
* fix content negotiation issue when sorting selected media types by quality value
* prevent further writing to the response when @ResponseStatus contains a reason
* deprecate HttpStatus codes 419, 420, 421
* support access to all URI vars via @PathVariable Map
* add "excludedExceptions" property to SimpleUrlHandlerMapping
* add CompositeRequestCondition for use with multiple custom request mapping conditions
* add ability to configure custom MessageCodesResolver through the MVC Java config
* add option in MappingJacksonJsonView for setting the Content-Length header
* decode path variables when url decoding is turned off in AbstractHandlerMapping
* add required flag to @RequestBody annotation
* Jaxb2Marshaller performs proper "supports" check for scanned packages (SPR-9152)
* add convenient WebAppInitializer base classes (SPR-9300)
* support executor qualification with @Async#value (SPR-6847)
* support initial delay attribute for scheduled tasks (SPR-7022)
* cache by-type lookups in DefaultListableBeanFactory (SPR-6870)
* merge rather than add URI vars to data binding values (SPR-9349)
* support not (!) operator for profile selection (SPR-8728)
* fix regression in ClassPathResource descriptions (SPR-9413)
* improve documentation of @Bean 'lite' mode (SPR-9401)
* improve documentation of annotated class support in the TestContext framework (SPR-9401)
* document support for JSR-250 lifecycle annotations in the TestContext framework (SPR-4868)
* improve dependency management for spring-test (SPR-8861)
* fix MultipartResolver Resin compatibility (SPR-9299)
* handle non-existent files in ServletContextResource (SPR-8461)
* apply cache settings consistently in EhCacheFactoryBean (SPR-9392)
* initial support for JCache (JSR-107) compliant cache providers (SPR-8774)
Changes in version 3.1.1 ()
-------------------------------------
* official support for Hibernate 4.0.0/4.0.1 as well as Hibernate 4.1
* JBossNativeJdbcExtractor is compatible with JBoss AS 7 as well
* restored JBossLoadTimeWeaver compatibility with JBoss AS 5.1
* Provider injection works with generically typed collections of beans as well
* @ActiveProfiles mechanism in test context framework works with @ImportResource as well
* context:property-placeholder's "file-encoding" attribute value is being applied correctly
* clarified Resource's "getFilename" method to return null if resource type does not have a filename
* Resource "contentLength()" implementations work with OSGi bundle resources and JBoss VFS resources
* PathMatchingResourcePatternResolver preserves caching for JNLP (Java Web Start) jar connections
* optimized converter lookup in GenericConversionService to avoid contention in JDK proxy check
* DataBinder correctly handles ParseException from Formatter for String->String case
* CacheNamespaceHandler actually parses cache:annotation-driven's "key-generator" attribute
* introduced CustomSQLExceptionTranslatorRegistry/Registrar for JDBC error code translation
* officially deprecated TopLinkJpaDialect in favor of EclipseLink and Spring's EclipseLinkJpaDialect
* fixed LocalContainerEntityManagerFactoryBean's "packagesToScan" to avoid additional provider scan
* LocalContainerEntityManagerFactoryBean's "persistenceUnitName" applies to "packagesToScan" as well
* DefaultPersistenceUnitManager uses containing jar as persistence unit root URL for default unit
* added protected "isPersistenceUnitOverrideAllowed()" method to DefaultPersistenceUnitManager
* Hibernate synchronization properly unbinds Session even in case of afterCompletion exception
* Hibernate exception translation covers NonUniqueObjectException to DuplicateKeyException case
* Hibernate 4 LocalSessionFactoryBean implements PersistenceExceptionTranslator interface as well
* Hibernate 4 LocalSessionFactoryBean does not insist on a "dataSource" reference being set
* added "entityInterceptor" property to Hibernate 4 LocalSessionFactoryBean
* added "getConfiguration" accessor to Hibernate 4 LocalSessionFactoryBean
* added "durability" and "description" properties to JobDetailFactoryBean
* fixed QuartzJobBean and MethodInvokingJobDetailFactoryBean for compatibility with Quartz 2.0/2.1
* JMS CachingConnectionFactory never caches consumers for temporary queues and topics
* JMS SimpleMessageListenerContainer silently falls back to lazy registration of consumers
* added "receive-timeout" attribute to jms:listener-container element in JMS namespace
* ServletServerHttpRequest/Response fall back on the Content-Type and encoding of the request
* preserve quotes in MediaType parameters
* added "normalize()" method to UriComponents
* remove empty path segments from input to UriComponentsBuilder
* added "fromRequestUri(request)" and "fromCurrentRequestUri()" methods to ServletUriComponentsBuilder
* Servlet/PortletContextResource's "isReadable()" implementation returns false for directories
* allow adding flash attributes in methods with a ModelAndView return value
* make flash attributes available in the model of Parameterizable/UrlFilenameViewController
* revised the FlashMapManager contract and implementation to address a flaw in its design
* removed check for HTTP POST when resolving multipart request controller method arguments
* fixed request mapping bug involving direct vs pattern path matches with HTTP methods
* updated @RequestMapping and reference docs wrt differences between @MVC 3.1 and @MVC 2.5-3.0
* improved @SessionAttributes handling to provide better support for clustered sessions
* added property to RedirectView to disable expanding URI variables in redirect URL
Changes in version 3.1 GA ()
--------------------------------------
* SmartLifecycle beans in Lifecycle dependency graphs are only being started when isAutoStartup=true
* ConversionService is able to work with "Collections.emptyList()" as target type (again)
* restored DataBinder's ability to bind to an auto-growing List with unknown element type
* added SmartValidator interface with general support for validation hints
* added custom @Validated annotation with support for JSR-303 validation groups
* JSR-303 SpringValidatorAdapter and MVC data binding provide support for validation groups
* restored SpringValidatorAdapter's ability to handle bean constraints with property paths
* added MethodValidationInterceptor/PostProcessor for Hibernate Validator 4.2 based method validation
* fixed QuartzJobBean to work with Quartz 2.0/2.1 as well
* @Transactional qualifiers match against transaction manager definitions in parent contexts as well
* optimized AnnotationTransactionAspect and AnnotationCacheAspect pointcuts to avoid runtime checks
* renamed @CacheEvict's "afterInvocation" attribute to "beforeInvocation" (for better readability)
* added "mappingResources" property to LocalContainerEntityManagerFactoryBean (pointing to orm.xml)
* Hibernate 4.0 variant of HibernateTransactionManager properly works with Open Session in View now
* JmsInvokerClientInterceptor/FactoryBean always uses createConnection/createSession when on JMS 1.1
* added out-of-the-box MappingJacksonMessageConverter impl for Spring's JMS MessageConverter facility
* DispatcherServlet's "dispatchOptionsRequest" only sets the default 'Allow' header if actually needed
* ResourceHttpRequestHandler sends content without content-type header if no media type found
* ResourceHttpRequestHandler and ContentNegotiatingViewResolver use consistent mime type resolution
* simplified support package layout in "web.method" and "web.servlet.mvc.method"
* added "useTrailingSlashMatch" property to RequestMappingHandlerMapping
* Portlet MVC annotation mapping allows for distributing action names across controllers
* added String constants to MediaType
Changes in version 3.1 RC2 ()
---------------------------------------
* fixed OSGi manifest for spring-web bundle to not require Apache HttpComponents anymore
* fixed GenericTypeResolver to consistently return null if not resolvable
* added proper "contentLength()" implementation to ByteArrayResource
* refined Resource "exists()" check for HTTP URLs to always return false for 404 status
* LocaleEditor and StringToLocaleConverter do not restrict variant part through validation
* LinkedCaseInsensitiveMap overrides putAll method as well (for IBM JDK 1.6 compatibility)
* optimized DefaultListableBeanFactory's PropertyDescriptor caching for concurrent access
* renamed ValueWrapperImpl to SimpleValueWrapper (for use in Cache implementations)
* exposed EHCache 1.7's "statisticsEnabled"/"sampledStatisticsEnabled" on EhCacheFactoryBean
* SpringValidatorAdapter accepts non-indexed set paths (for Hibernate Validator compatibility)
* TransactionSynchronizationManager eagerly cleans up void ResourceHolders on any access
* SimpleJdbcTestUtils executeSqlScript properly closes its LineNumberReader after use
* JDO PersistenceManager synchronization performs close attempt after completion (if necessary)
* JPA EntityManagerFactoryUtils silently ignores IllegalArgumentExceptions from setHint calls
* fixed HibernateTransactionManager for Hibernate 4.0 to refer to correct openSession() method
* added "namingStrategy" property to Hibernate 4 LocalSessionFactoryBean variant
* HibernateJpaDialect does NOT expose underlying Session for underlying SessionFactory anymore
* fixed MethodInvokingJobDetailFactoryBean's Quartz 2.0 support
* added Quartz 2.1 compatibility while preserving Quartz 2.0 support
* introduced JobDetail/CronTrigger/SimpleTriggerFactoryBean variants for Quartz 2.0/2.1 support
* added "forwarder" property to ConnectorServerFactoryBean, accepting an MBeanServerForwarder
* RmiClientInterceptor detects nested SocketException as connect failure as well
* fixed StandardServlet/PortletEnvironment to check for JNDI (for Google App Engine compatibility)
* Servlet/PortletContextResource's getFile prefers "file:" URL resolution over calling getRealPath
* Portlet session mutex uses global session attribute to be shared among all portlets in the session
* using original request URI in FlashMap matching logic to account for URL rewriting
* now supporting target request with multiple parameter values in FlashMap matching logic
* fixed issue in SimpleMappingExceptionResolver causing exception when setting "statusCodes" property
* added ignoreDefaultModelOnRedirect attribute to
* added methods to UriComponentsBuilder for replacing the path or the query
* support UriComponentsBuilder as @Controller method argument
* added ServletUriComponentsBuilder to build a UriComponents instance starting with a ServletRequest
* fixed issue with cache ignoring prototype-scoped controllers in RequestMappingHandlerAdapter
* fixed issue with setting Content-Length header depending on the charset of the response
* fixed @RequestMapping header matching to correctly process negated header conditions
* added getObjectMapper() accessor to MappingJacksonHttpMessageConverter
* AbstractCachingViewResolver caches unresolved view names by default ("cacheUnresolved"=true)
* form input tag now allows type values other than "text" such as HTML5-specific types
* form hidden tag now supports "disabled" attribute
* fixed "formMultiSelect"/"formCheckboxes" FreeMarker macros to compare against actual field value
* MockHttpServletRequest/Response now keep contentType field and Content-Type header in sync
* updated Spring MVC configuration section to include MVC Java config and the MVC namespace
Changes in version 3.1 RC1 ()
---------------------------------------
* upgraded to JUnit 4.9
* updated Quartz support package for Quartz 2.0 compatibility
* support for load-time weaving on WebSphere 7 and 8
* updated JBossLoadTimeWeaver to automatically detect and support JBoss AS 7 as well
* added support for Hibernate 4.0 (HibernateJpaDialect as well as natively in orm.hibernate4)
* added 'destroy method inference' (SPR-8751)
* prepared Spring's DataSource and RowSet adapters for forward compatibility with JDBC 4.1
* introduced ForkJoinPoolFactoryBean for Java 7 (alternative: add new jsr166.jar to Java 6)
* introduced extended WritableResource interface
* ConversionService prevents Converter from trying to convert to a subtype of its actual target type
* CollectionCollection/MapToMapConverter preserve original Collection/Map if no converted elements
* DefaultListableBeanFactory is only deserializable through a SerializedBeanFactoryReference
* DefaultListableBeanFactory's getBean(name, type) attempts type conversion if necessary
* DefaultListableBeanFactory allows for init methods to register further bean definitions (again)
* XmlBeanDefinitionReader accepts description subelement within map entry as well (as per the XSD)
* ConfigurationClassPostProcessor supports use of same processor instance with several factories
* SpringBeanAutowiringSupport is able to process @Value annotations on any given target instance
* introduced @EnableAspectJAutoProxy
* overridden @PersistenceContext annotations on subclass methods are being processed correctly
* DataBinder uses a default limit of 256 for array/collection auto-growing
* added "autoGrowNestedPaths" property to ConfigurableWebBindingInitializer
* added "getMultipartContentType(String)" method to MultipartRequest interface
* added headers support to MultipartFile abstraction (actually supported on Servlet 3.0)
* revised Servlet 3.0 based StandardServletMultipartResolver for correct param/file distinction
* MultipartFilter uses a Servlet 3.0 based StandardServletMultipartResolver by default
* added RequestPartServletServerHttpRequest and corresponding @RequestPart support in Spring MVC
* added "connectTimeout" and "readTimeout" properties to Simple/CommonsClientHttpRequestFactory
* added flash attribute support through FlashMap and FlashMapManager abstractions
* added RedirectAttributes abstraction as supported method argument type of @RequestMapping methods
* added "ignoreDefaultModelOnRedirect" flag to RequestMappingHandlerAdapter
* fixed @ExceptionHandler exception type matching (ExceptionDepthComparator)
* ResourceHttpRequestHandler detects invalid directory traversal in given path
* HtmlUtils properly escapes single quotes as well
* Spring JSP tags do not use their own expression support on Servlet 3.0 containers by default
* added support for web.xml context-param "springJspExpressionSupport" (explicit "true"/"false")
* ContextLoader and FrameworkServlet support "contextId" parameter for custom serialization id
* added "acceptProxyClasses" flag to RemoteInvocationSerializingExporter
* refined WebLogic RMI descriptor to only mark 'getTargetInterfaceName' method as idempotent
* revised JMS CachedConnectionFactory to avoid unnecessary rollback calls on Session return
* fixed JMS CachedConnectionFactory to fully synchronize its Session list
* JpaTransactionManager etc can find EntityManagerFactory by "persistenceUnitName" property now
* HibernateJpaDialect exposes underlying Session for underlying SessionFactory
* deprecated JpaTemplate/JpaInterceptor/JpaDaoSupport and JdoTemplate/JdoInterceptor/JdoDaoSupport
* updated H2 error codes in sql-error-codes.xml
* fixed NamedParameterJdbcTemplate to use correct maximum type for queryForInt/Long
* jdbc:script's "separator" and "execution" attributes work nested with embedded-database as well
* added "encoding" attribute to jdbc:script element
* JavaMailSenderImpl detects and respects "mail.transport.protocol" property in existing Session
* added ConcurrentMapCacheManager, dynamically building ConcurrentMapCache instances at runtime
* added "disabled" property to EhCacheFactoryBean
* introduced generic invokeMethod() in ReflectionTestUtils
* introduced DelegatingSmartContextLoader as new default ContextLoader for TestContext framework
* deprecated @ExpectedException
* AnnotationConfigContextLoader now detects default configuration classes within test classes
* TestContext now uses MergedContextConfiguration for the ContextCache key
* extended Servlet API mocks for Servlet 3.0 forward compatibility as far as possible
* made MockHttpServletResponse compatible with Servlet 3.0 getHeader(s) method returning Strings
* added getHeaderValue(s) method to MockHttpServletResponse for raw value access
Changes in version 3.1 M2 ()
--------------------------------------
* revised TypeDescriptor signature and implementation for clearer handling of nested generics
* full support for arbitrary nesting of collections in fields
* proper type detection in nested collections within arrays
* collection/array conversion returns original collection if possible (instead of first element)
* AnnotatedBeanDefinitionReader now inherits Environment of supplied BeanDefinitionRegistry
* eliminated @Feature support in favor of @Enable* and framework-provided @Configuration classes
* introduced @EnableTransactionManagement, @EnableScheduling, etc
* add Java config alternative to MVC namespace via @EnableWebMvc annotation
* introduce HandlerMethod abstraction selecting and invoking @RequestMapping methods
* add HandlerMethod-based implementations of HandlerMapping, HandlerAdapter, HandlerExceptionResolver
* merge @PathVariables in the model before rendering except for JSON/XML serialization/marshalling.
* use @PathVariables in addition to request parameters in data binding
* support URI variable placeholders in "redirect:" prefixed view names
* add flag to extract value from single-key model in MappingJacksonJsonView
* support @Valid on @RequestBody method arguments
* allow bean references in mvc:interceptor namespace elements
* consolidate initialization and use of MappedInterceptors in AbstractHandlerMapping
* added Servlet 3.0 based WebApplicationInitializer mechanism for programmatic bootstrapping
* added Servlet 3.0 based StandardServletMultipartResolver
* added "packagesToScan" feature to LocalContainerEntityManagerFactoryBean (avoiding persistence.xml)
* fixed JPA 2.0 timeout hints to correctly specify milliseconds
* added support for shutdown scripts to DataSourceInitializer (see "databaseCleaner" property)
* added "separator" and "execution" attributes to jdbc:script element
* revised cache abstraction to focus on minimal atomic access operations
* updated Quartz package to support Quartz 1.8 as well (note: not fully supporting Quartz 2.0 yet)
* RemoteExporter uses an opaque proxy for 'serviceInterface' (no AOP interfaces exposed)
* introduced AnnotationConfigContextLoader to provide TestContext support for @Configuration classes
* introduced @ActiveProfiles for declarative configuration of bean definition profiles in tests
* TestContext generates context cache key based on all applicable configuration metadata
* deprecated AbstractJUnit38SpringContextTests and AbstractTransactionalJUnit38SpringContextTests
Changes in version 3.1 M1 ()
--------------------------------------
* upgraded to JUnit 4.8.1 and TestNG 5.12.1
* fixed aspects bundle to declare dependencies for @Async aspect as well
* introduced Environment abstraction with flexible placeholder resolution
* introduced support for environment profiles in XML bean definition files
* introduced @Profile annotation for configuration classes and individual component classes
* introduced PropertySourcesPlaceholderConfigurer as alternative to PropertyPlaceholderConfigurer
* introduced "c:" namespace for constructor argument shortcuts (analogous to the "p:" namespace)
* introduced @FeatureConfiguration classes with @Feature methods that return FeatureSpecifications
* added TxAnnotationDriven, MvcAnnotationDriven, etc. as out-of-the-box FeatureSpecifications
* introduced caching abstraction and cache annotation support
* moved EhCache FactoryBeans from context-support to context module
* EhCacheManagerFactoryBean properly closes "ehcache.xml" input stream, if any
* exceptions thrown by @Scheduled methods will be propagated to a registered ErrorHandler
* ProxyCreationContext uses "ThreadLocal.remove()" over "ThreadLocal.set(null)" as well
* BeanDefinitionVisitor now actually visits factory method names
* fixed potential InjectionMetadata NPE when using SpringBeanAutowiringInterceptor
* fixed AbstractBindingResult to avoid NPE in "hashCode()" if target is null
* Servlet/PortletRequestDataBinder perform unwrapping for MultipartRequest as well
* ResourceHttpRequestHandler does not set Content-Length header for 304 response
* LocaleChangeInterceptor validates locale values in order to prevent XSS vulnerability
Changes in version 3.0.5 ()
-------------------------------------
* support for Hibernate 3.6 final
* added core serializer abstraction with default implementations using Java Serialization
* consistent use of JDK 1.5's "ThreadLocal.remove()" over "ThreadLocal.set(null)"
* fixed JodaTimeContextHolder to use a non-inheritable ThreadLocal and expose a reset method
* revised "ClassUtils.isAssignable" semantics to cover primitives vs wrappers in both directions
* optimized AnnotationUtils findAnnotation performance for repeated search on same interfaces
* ConversionService protects itself against infinite recursion in ObjectToCollectionConverter
* fixed TypeDescriptor to correctly resolve nested collections and their element types
* BeanWrapper does not attempt to populate Map values on access (just auto-grows Map itself)
* fixed Autowired/CommonAnnotationBeanPostProcessor to prevent race condition in skipping check
* fixed @Value injection to correctly cache temporary null results for non-singleton beans
* ApplicationContext registers context-specific ClassArrayEditor for its bean ClassLoader
* refined ApplicationContext singleton processing to not fail for manually registered null instances
* fixed ApplicationContext event processing for repeated invocations to non-singleton listener beans
* optimized @Bean error messages for static factory methods as well as for argument type mismatches
* modified expression parsing to pass full TypeDescriptor context through to ConversionService calls
* adapted expression parser's Constructor/MethodResolver to accept TypeDescriptors instead of raw types
* SpEL supports projection on any kind of Collection (not just on Lists and arrays)
* SpEL MapAccessor consistently rejects "target.key" style access to Maps if no such key is found
* SpEL method invocations prefer method with fewest parameters (e.g. no-arg over vararg)
* AspectJExpressionPointcut uses bean ClassLoader for initializing the AspectJ pointcut parser
* added AnnotationAsyncExecutionAspect as AspectJ-based variant of @Async processing
* added mode="proxy"/"aspectj" and proxy-target-class options to task:annotation-driven
* JDBC bundle uses local ClassLoader as bean ClassLoader for "sql-error-codes.xml" parsing
* EmbeddedDatabaseFactory shuts down database when failing to populate it in "initDatabase()"
* embedded database support now also works with Derby >= 10.6
* "jdbc:embedded-database" uses id as database name to allow multiple ones in parallel
* ResourceDatabasePopulator throws descriptive ScriptStatementFailedException with resource details
* added configurable Connection/Statement/ResultSet target types to Jdbc4NativeJdbcExtractor
* added OracleJdbc4NativeJdbcExtractor with pre-configured Oracle JDBC API types
* DefaultLobHandler's "wrapAsLob" mode works with PostgreSQL's "getAsciiStream()" requirement
* ResultSetWrappingSqlRowSet (as used by JdbcTemplate's "queryForRowSet") supports column labels now
* LocalSessionFactoryBean's "entityCacheStrategies" works with region names on Hibernate 3.6 as well
* fixed DefaultMessageListenerContainer's no-message-received commit to work without Session caching
* DefaultMessageListenerContainer's skips no-message-received commit on Tibco (avoiding a deadlock)
* JaxWsPortClientInterceptor does not fall back to annotation-specified name as portName anymore
* UriTemplate is serializabl

我要回帖

更多关于 hessian接口 的文章

 

随机推荐