关闭

Spring 3.x/4.x系列改动日志spring 3.0 3.1 3.2 4.0 4.1 4.2

标签: spring版本改动
919人阅读 评论(0) 收藏 举报
分类:

转自官网文档http://docs.spring.io/spring/docs/3.2.17.RELEASE/spring-framework-reference/htmlsingle/

Spring 3.0 - New Features

2.1. Java 5
2.2. Improved documentation
2.3. New articles and tutorials
2.4. New module organization and build system
2.5. Overview of new features
2.5.1. Core APIs updated for Java 5
2.5.2. Spring Expression Language
2.5.3. The Inversion of Control (IoC) container
Java based bean metadata
Defining bean metadata within components
2.5.4. General purpose type conversion system and field formatting system
2.5.5. The Data Tier
2.5.6. The Web Tier
Comprehensive REST support
@MVC additions
2.5.7. Declarative model validation
2.5.8. Early support for Java EE 6
2.5.9. Support for embedded databases

Spring 3.1 - New Features

3.1. Cache Abstraction
3.2. Bean Definition Profiles
3.3. Environment Abstraction
3.4. PropertySource Abstraction
3.5. Code equivalents for Spring’s XML namespaces
 - Code-based equivalents:<context:component-scan/>, <tx:annotation-driven/> and <mvc:annotation-driven>

3.6. Support for Hibernate 4.x
3.7. TestContext framework support for @Configuration classes and bean definition profiles
3.8. c: namespace for more concise constructor injection
3.9. Support for injection against non-standard JavaBeans setters
3.10. Support for Servlet 3 code-based configuration of Servlet Container
3.11. Support for Servlet 3 MultipartResolver
3.12. JPA EntityManagerFactory bootstrapping without persistence.xml
3.13. New HandlerMethod-based Support Classes For Annotated Controller Processing
3.14. “consumes” and “produces” conditions in @RequestMapping
3.15. Flash Attributes and RedirectAttributes
3.16. URI Template Variable Enhancements
3.17. @Valid On @RequestBody Controller Method Arguments

对收到的http的请求进行验证, 如果不通过返回400

3.18. @RequestPart Annotation On Controller Method Arguments

允许获得上传文件的每一个Part的内容

3.19. UriComponentsBuilder and UriComponents

Spring 3.2 - New Features

4.1. Support for Servlet 3 based asynchronous request processing
4.2. Spring MVC Test framework
 - First-class support for testing Spring MVC applications with a fluent API and without a Servlet container. Server-side tests involve use of the DispatcherServlet while client-side REST tests rely on the RestTemplate. See Section 11.3.6, “Spring MVC Test Framework”.

4.3. Content negotiation improvements
4.4. @ControllerAdvice annotation
4.5. Matrix variables
4.6. Abstract base class for code-based Servlet 3+ container initialization
4.7. ResponseEntityExceptionHandler class
4.8. Support for generic types in the RestTemplate and in @RequestBody arguments
4.9. Jackson JSON 2 and related improvements
4.10. Tiles 3
4.11. @RequestBody improvements
4.12. HTTP PATCH method
4.13. Excluded patterns in mapped interceptors
4.14. Using meta-annotations for injection points and for bean definition methods
4.15. Initial support for JCache 0.5
4.16. Support for @DateTimeFormat without Joda Time
4.17. Global date & time formatting
4.18. New Testing Features
4.19. Concurrency refinements across the framework
4.20. New Gradle-based build and move to GitHub
 - Gradle+GitHub = GG? spring
4.21. Refined Java SE 7 / OpenJDK 7 support

2016-5-30 官网3.2.17, 内网最新3.2.13, 我的项目版本3.2.4

Spring 4.0 - New Features

3.1. Improved Getting Started Experience
3.2. Removed Deprecated Packages and Methods
3.3. Java 8 (as well as 6 and 7)
3.4. Java EE 6 and 7
3.5. Groovy Bean Definition DSL
3.6. Core Container Improvements
3.7. General Web Improvements
3.8. WebSocket, SockJS, and STOMP Messaging
3.9. Testing Improvements

Spring 4.1 - New Features

4.1. JMS Improvements
 - J2EE中的一个重要规范JMS(Java Message Service),因为这个规范在企业中的应用十分的广泛,也比较重要, JMS的介绍参考这篇博客
4.2. Caching Improvements
4.3. Web Improvements
4.4. WebSocket Messaging Improvements
4.5. Testing Improvements

Spring 4.2 - New Features

5.1. Core Container Improvements
5.2. Data Access Improvements
5.3. JMS Improvements
5.4. Web Improvements
5.5. WebSocket Messaging Improvements
5.6. Testing Improvements

Spring 4.3 - New Features

http://my.oschina.net/waylau/blog/698186?utm_source=tuicool&utm_medium=referral

核心容器改进

核心容器额外提供了更丰富的元数据来改进编程。
默认 Java 8 的方法检测为 bean 属性的 getter/setter 方法。
如果目标 bean 只定义了一个构造函数,则它无需要指定@Autowired注解

@Configuration类支持构造函数注入。

任何 SpEL 表达式用于指定@EventListener的 condition 引用到 bean(例如@beanName.method())。
组成注解现在可以用一个包含元注解中的数组属性的数组组件类型的元素来覆盖。例如,@RequestMapping的的String[] path 可以在组成注解用 String path 覆盖。
@Scheduled和@Schedules现在是作为元注解用来通过属性覆盖来创建自定义的组成注解。
@Scheduled适当支持任何范围内的 bean。

数据访问改进

jdbc:initialize-database 和 jdbc:embedded-database 支持可配置的分离器被应用到每个脚本。

缓存改进

Spring 4.3 允许在一个给定的 key 并发调用时实现要同步,使得相应的值只计算一次。这是一个可选的功能,通过设置@Cacheable的新的 sync 属性来启用。此功能引入了Cache接口的一个重大更改,即get(Object key, Callable valueLoader)方法已添加。

Spring 4.3 还改进了缓存抽象如下:

SpEL 表达式对于缓存相关的注解,现在可以引用 bean(即@beanName.method()))。
ConcurrentMapCacheManager和ConcurrentMapCache现在通过一个新的storeByValue属性支持缓存实体的序列化。 @Cacheable,@CacheEvict,@CachePut和@Caching现在是作为元注解用来通过属性覆盖来创建自定义的组成注解。

JMS 改进

@SendTo现在可以在类级别指定一个共同回复目标。
@JmsListener 和 @JmsListeners现在是作为元注解用来通过属性覆盖来创建自定义的组成注解。

Web 改进

内建支持 HTTP HEAD 和 HTTP OPTIONS.
新的组合注解 @GetMapping, @PostMapping, @PutMapping, @DeleteMapping, 和 @PatchMapping 用于 @RequestMapping。
详见 @RequestMapping 组合变种
新的@RequestScope, @SessionScope, 和 @ApplicationScope用于 web 范围的组合注解
Request scope, Session scope, 和 Application scope
新的 @RestControllerAdvice 注解是 @ControllerAdvice 和 @ResponseBody 的语义结合
@ResponseStatus现在在类级别被支持,并被所有方法继承
新的 @SessionAttribute 注解用于访问 session 属性 (见例子)
新的 @RequestAttribute 注解用于访问请求属性 (见例子)
@ModelAttribute 允许通过 binding=false 来避免数据绑定(见引用)
错误和自定义抛出,将被统一到 MVC 异常处理器中处理
HTTP 消息转换编码一致处理,包括默认 UTF-8 用于多部分文本内容
静态资源处理使用配置的ContentNegotiationManager用于媒体类型计算
RestTemplate 和 AsyncRestTemplate 支持通过DefaultUriTemplateHandler 来实现严格的URI变量编码
AsyncRestTemplate支持请求拦截

WebSocket 消息改进

@SendTo和@SendToUser现在可以在类级被指定为共享共同的目的地。

测试改进

为了支持 Spring TestContext Framework ,现在需要 JUnit 4.12 或者更高的版本
新的SpringRunner 关联于 SpringJUnit4ClassRunner
测试相关的注解,现在可以在接口上声明了。例如,基于 Java 8 的接口上使用测试接口
空声明的 @ContextConfiguration 现在将会完全忽略,如果检测到默认的 XML 文件, Groovy 脚本, 或 @Configuration 类型
@Transactional 测试方法不再需要public (如, 在 TestNG 和 JUnit 5)
@BeforeTransaction 和 @AfterTransaction不再需要public,并且在 基于 Java 8 的接口的默认方法上声明
在Spring TestContext Framework 的ApplicationContext的缓存现在有界为32默认最大规模和最近最少使用驱逐策略。最大的大小可以通过设置称为spring.test.context.cache.maxSize 一个 JVM 系统属性或 Spring 配置。
ContextCustomizer API 用于自定义测试 ApplicationContext 在 bean 定义加载到上下文后但在上下文被刷新前。定制工具可以在全球范围由第三方进行注册,而无需要实现一个自定义的 ContextLoader。
@Sql 和 @SqlGroup 现在作为元注解通过覆盖属性来创建自定义组合注解
ReflectionTestUtils现在在 set 或 get 一个字段时,会自动解开代理。
服务器端的 Spring MVC 测试支持具有多个值的响应头。
服务器端的 Spring MVC 测试解析表单数据的请求内容和填充请求参数。
服务器端的 Spring MVC 测试支持 mock 式的断言来调用处理程序方法。
客户端 REST 测试支持允许指定多少次预期的请求以及期望的声明顺序是否应该被忽略(参见15.6.3,“客户端REST测试”)。
客户端 REST 测试支持请求主体表单数据的预期。

支持新的类库和服务器

Hibernate ORM 5.2 (同样很好的支持 4.2/4.3 和 5.0/5.1,不推荐 3.6 )
Jackson 2.8 (在Spring 4.3,最低至 Jackson 2.6+ )
OkHttp 3.x (仍然并行支持 OkHttp 2.x)
Netty 4.1
Undertow 1.4
Tomcat 8.5.2 以及 9.0 M6

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:256487次
    • 积分:3846
    • 等级:
    • 排名:第8291名
    • 原创:122篇
    • 转载:63篇
    • 译文:7篇
    • 评论:32条
    最新评论