「这是我参与2022首次更文挑战的第9天,活动详情查看:2022首次更文挑战」
前言:前面我们说了Spring中Bean的加载,AOP一件IOC模式,今天我们来说一下Spring升级到3.1时所附加的新特性。
特性阅览:
- 为了解决各种环境下(如开发、测试和生产)选择不同配置的问题,Spring3.1引入了环境profile功能。借助于profile,就能根据应用部署在什么环境之中选择不同的数据源Bean。
# 环境配置 dev|test|prod
spring:
profiles:
active: dev
aop:
proxy-target-class: true
以上则是在yaml文件中对于开发环境,生产环境,测试环境的指定,目前用的是开发环境(dev)
- 在Spring3.0基于java的配置之上,Spring3.1添加了多个enable注解,这样就能使用这个注解启用Spring的也定功能,此项功能在SpringCloud中被广泛运用列如:@EnableEurekaServer、@EnableAsync、@EnableScheduling等。
- 添加了Spring对声明式缓存的支持,能够使用简单的注解声明缓存边界和规则,这与之前声明事务边界很相似。
- 新增了用于构造器注入的C命名空间,它类似于Spring2.0所提供的面向属性的p命名空间用于属性注入,他们都是非常简洁易用的。
- Spring开始支持Servlet3.0,包含在基于Java的配置中声明Servlet和Filter,而不在借助于web.xml。
- 改善Spring对JPA的支持,使得它能够在Spring中完整地配置JPA,不必在使用persistence.xml文件的引入。
此外Spring3.1的更新内容还针对SpringMVC的功能增强
- 自动绑路径变量到模型属性中。
- 提供了@RequestMappingproduces和consumes属性,用于匹配请求中的Accept和Content-Type的头部信息。
- 提供了@RequestPart注解,用于将multipart请求中的某些部分绑定到处理器的方法参数中。
- 支持flash属性(在redirect请求之后依然能够存活的属性)以及用于请求间存放flash属性的RedirectAttributes类型。