资讯专栏INFORMATION COLUMN

Spring新功能

baiy / 650人阅读

摘要:新特性重要功能升级为了解决各种环境下如开发测试和生产选择不同配置的问题,引入了环境功能。这个消息模块支持的功能,同时提供了基于模板的方式发布消息是第一批支持特性的框架,比如它所支持的表达式。

Spring 3.1新特性 重要功能升级

为了解决各种环境下(如开发、测试和生产)选择不同配置的问题,Spring 3.1引入了环境profile功能。借助于profile,就能根据应用部署在什么环境之中选择不同的数据源bean

在Spring 3.0基于Java的配置之上,Spring 3.1添加了多个enable注
解,这样就能使用这个注解启用Spring的特定功能

添加了Spring对声明式缓存的支持,能够使用简单的注解声明缓存边界和规则,与以前声明事务边界很类似

新添加的用于构造器注入的c命名空间,它类似于Spring 2.0所提供的面向属性的p命名空间,p命名空间用于属性注入,非常简洁易用的

Spring开始支持Servlet 3.0,包括在基于Java的配置中声明Servlet和Filter,而不再借助于web.xml

改善Spring对JPA(Java Persistence API。JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中)的支持,使得它能够在Spring中完整地配置JPA,不必再使用persistence.xml文件

针对Spring MVC的功能增强

自动绑定路径变量到模型属性中

提供了@RequestMappingproduces和consumes属性,用于匹配请求中的Accept和Content-Type头部信息

提供了@RequestPart注解,用于将multipart请求中的某些部分绑定到处理器的方法参数中

支持Flash属性(在redirect请求之后依然能够存活的属性)以及用于在请求间存放flash属性的RedirectAttributes类型

Spring 3.2新特性 Spring MVC 3.2的功能提升

控制器(Controller)可以使用Servlet 3.0的异步请求,允许在一个独立的线程中处理请求,从而将Servlet线程解放出来处理更多的请求

引入了Spring MVC测试框架,用于为控制器编写更为丰富的测试,断言它们作为控制器的行为行
为是否正确,而且在使用的过程中并不需要Servlet容器

包含了基于RestTemplate的客户端的测试支持,在测试的过程中,不需要往真正的REST端点上发送请求

@ControllerAdvice注解能够将通用的@ExceptionHandler、@ InitBinder和@ModelAttributes方法收集到一个类中,并应用到所有控制器上

完整的内容协商功能可以在整个Spring MVC中使用,即便是依赖于消息转换器(message converter)使用和产生内容的控制器方法也能使用该功能

包含了一个新的@MatrixVariable注解,能够将请求中的矩阵变量(matrix variable)绑定到处理器的方法参数中

基础的抽象类AbstractDispatcherServletInitializer能够非常便利地配置DispatcherServlet,而不必再使用web.xml。与之类似,当你希望通过基于Java的方式来配置Spring的时候,可以使用Abstract-AnnotationConfigDispatcherServletInitializer的子类

新增了ResponseEntityExceptionHandler,可以用来替代Default-HandlerException Resolver。ResponseEntityExceptionHandler方法会返回ResponseEntity,而不是ModelAndView

RestTemplate和@RequestBody的参数可以支持范型

RestTemplate和@RequestMapping可以支持HTTP PATCH方法

在拦截器匹配时,支持使用URL模式将其排除在拦截器的处理功能之外

非MVC的功能改善中几项最为有意思的新特性

@Autowired、@Value和@Bean注解能够作为元注解,用于创建自定义的注入和bean声明注解

@DateTimeFormat注解不再强依赖JodaTime。如果提供了JodaTime,就会使用它,否则的话,会使
用SimpleDateFormat

Spring的声明式缓存提供了对JCache 0.5的支持

支持定义全局的格式来解析和渲染日期与时间

在集成测试中,能够配置和加载WebApplicationContext

在集成测试中,能够针对request和session作用域的bean进行测试

Spring 4.0新特性

Spring提供了对WebSocket编程的支持,包括支持JSR-356——Java API for WebSocket

在WebSocket之上提供了一个高层次的面向消息的编程模型,该模型基于SockJS,并且包含了对STOMP协议
的支持

新的消息(messaging)模块,很多的类型来源于Spring Integration项目。这个消息模块支持Spring的SockJS/STOMP功能,同时提供了基于模板的方式发布消息

Spring是第一批支持Java 8特性的Java框架,比如它所支持的lambda表达式。别的暂且不说,这首先能
够让使用特定的回调接口(如RowMapper和JdbcTemplate)更加简洁,代码更加易读

与Java 8同时得到支持的是JSR-310——Date与Time API,在处理日期和时间时,它为开发者提供了比java.util.Date或java.util.Calendar更丰富的API

为Groovy开发的应用程序提供了更加顺畅的编程体验,尤其是支持非常便利地完全采用Groovy开发Spring应用程序。随这些一起提供的是来自于Grails的BeanBuilder,借助它能够通过Groovy配置Spring应用

添加了条件化创建bean的功能,在这里只有开发人员定义的条件满足时,才会创建所声明的bean

包含了Spring RestTemplate的一个新的异步实现,它会立即返回并且允许在操作完成后执行回调

添加了对多项JEE规范的支持,包括JMS 2.0、JTA 1.2、JPA 2.1和Bean Validation 1.1

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/67296.html

相关文章

  • Spring之旅第二站:bean、新特性。。。

    摘要:除了,还简单介绍了对的支持,可以帮助应用将散落在各处的逻辑汇集于一处切面。当装配的时候,这些切面能够运行期编织起来,这样就能呢个非常有效的赋予新功能。 第1章 Spring之旅 说明 1、本文参考了《Spring 实战》重点内容,参考了GitHub上的代码 2、每个人的学习方式不一样,但目的是一样的,活学活用。最近一直在听《我们不一样》 3、本文只为记录作为以后参考,要想真正领悟Sp...

    luodongseu 评论0 收藏0
  • 深入理解Spring Cloud与微服务构建【二】 - 2.2 Spring Cloud

    摘要:负载均衡组件是一个负载均衡组件,它通常和配合使用。和配合,很容易做到负载均衡,将请求根据负载均衡策略分配到不同的服务实例中。和配合,在消费服务时能够做到负载均衡。在默认的情况下,和相结合,能够做到负载均衡智能路由。 2.2.1 简介 Spring Cloud 是基于 Spring Boot 的。 Spring Boot 是由 Pivotal 团队提供的全新 Web 框架, 它主要的特点...

    Rocko 评论0 收藏0
  • Spring核心 Spring简介

    摘要:基于工厂,会有多种应用上下文的实现的模块在模块中,面向切面编程提供了丰富的支持,该模块是应用系统中开发切面的基础,可以帮助应用对象解耦。的主页安全对于许多应用都是一个非常关键的切面。 简化Java开发 JavaBean:Enterprise JavaBean、EJBJDO:Java数据对象、Java Data ObjectPOJO:Plain Old Java ObjectDI:依赖注...

    sixgo 评论0 收藏0
  • 面试被问烂的 Spring IOC(求求你别再问了)

    摘要:例如资源的获取,支持多种消息例如的支持,对多了工具级别的支持等待。最上面的知道吧我就不讲了。生命周期事件回调等。他支持不同信息源头,支持工具类,支持层级容器,支持访问文件资源,支持事件发布通知,支持接口回调等等。 广义的 IOC IoC(Inversion of Control) 控制反转,即不用打电话过来,我们会打给你。 两种实现: 依赖查找(DL)和依赖注入(DI)。 IOC 和...

    denson 评论0 收藏0
  • Spring体系常用项目一览

    摘要:的面向的异常遵从通用的异常层次结构。比如以前常用的框架,现在常用的框架包含许多项目,下面挑一些最常用的出来总结一下。状态是流程中事件发生的地点,在流程中通过转移的方式从一个状态到另一个状态,流程的当前状况称为流程数据。 如今做Java尤其是web几乎是避免不了和Spring打交道了,但是Spring是这样的大而全,新鲜名词不断产生,学起来给人一种凌乱的感觉,我就在这里总结一下,理顺头绪...

    OnlyLing 评论0 收藏0

发表评论

0条评论

baiy

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<