一、Spring2.5之前,我们都是通过实现Controller接口或其实现来定义我们的处理器类。
二、Spring2.5引入注解式处理器支持,通过@Controller 和 @RequestMapping注解定义我们的处理器类。并且提供了一组强大的注解:
需要通过处理器映射DefaultAnnotationHandlerMapping和处理器适配器AnnotationMethodHandlerAdapter来开启支持@Controller 和 @RequestMapping注解的处理器。
@Controller:
用于标识是处理器类;
@RequestMapping:
请求到处理器功能方法的映射规则;
@RequestParam:
请求参数到处理器功能处理方法的方法参数上的绑定;
@ModelAttribute:
请求参数到命令对象的绑定;
@SessionAttributes:
用于声明session级别存储的属性,放置在处理器类上,通常列出模型属性(如@ModelAttribute)对应的名称,则这些属性会透明的保存到session中;
@InitBinder:
自定义数据绑定注册支持,用于将请求参数转换到命令对象属性的对应类型;
三、Spring3.0引入RESTful架构风格支持(通过@PathVariable注解和一些其他特性支持),且又引入了更多的注解支持:
@CookieValue:
cookie数据到处理器功能处理方法的方法参数上的绑定;
@RequestHeader:
请求头(header)数据到处理器功能处理方法的方法参数上的绑定;
@RequestBody:
请求的body体的绑定(通过HttpMessageConverter进行类型转换);
@ResponseBody:
处理器功能处理方法的返回值作为响应体(通过HttpMessageConverter进行类型转换);
@ResponseStatus:
定义处理器功能处理方法/异常处理器返回的状态码和原因;
@ExceptionHandler:
注解式声明异常处理器;
@PathVariable:
请求URI中的模板变量部分到处理器功能处理方法的方法参数上的绑定,从而支持RESTful架构风格的URI;
四、还有比如:
JSR-303验证框架的无缝支持(通过@Valid注解定义验证元数据);
使用Spring 3开始的ConversionService进行类型转换(
PropertyEditor依然有效),支持
使用@NumberFormat 和 @DateTimeFormat来进行数字和日期的格式化;
HttpMessageConverter
(Http输入/输出转换器,比如JSON、XML等的数据输出转换器);
ContentNegotiatingViewResolver
,内容协商视图解析器,它还是视图解析器,只是它支持根据请求信息将同一模型数据以不同的视图方式展示(如json、xml、html等),RESTful架构风格中很重要的概念(同一资源,多种表现形式);
Spring 3 引入 一个 mvc XML的命名空间用于支持mvc配置,包括如:
<mvc:annotation-driven>:
自动注册基于注解风格的处理器需要的DefaultAnnotationHandlerMapping、AnnotationMethodHandlerAdapter
支持Spring3的ConversionService自动注册
支持JSR-303验证框架的自动探测并注册(只需把JSR-303实现放置到classpath)
自动注册相应的HttpMessageConverter(用于支持@RequestBody 和 @ResponseBody)(如XML输入输出转换器(只需将JAXP实现放置到classpath)、JSON输入输出转换器(只需将Jackson实现放置到classpath))等。
<mvc:interceptors>:注册自定义的处理器拦截器;
<mvc:view-controller>:和ParameterizableViewController类似,收到相应请求后直接选择相应的视图;
<mvc:resources>:逻辑静态资源路径到物理静态资源路径的支持;
<mvc:default-servlet-handler>:当在web.xml 中DispatcherServlet使用<url-pattern>/</url-pattern> 映射时,能映射静态资源(当Spring Web MVC框架没有处理请求对应的控制器时(如一些静态资源),转交给默认的Servlet来响应静态文件,否则报404找不到资源错误,)。
……等等。
相关推荐
Spring Boot 3作为Spring Boot的新版本,带来了许多更新和改进,尤其对于那些希望紧跟最新Java技术和框架发展趋势的开发者来说,了解并掌握其核心特性变得尤为重要。 #### 二、核心特性概述 根据给定文件中的部分...
- **快照存储库**: 快照版本库 (https://repo.spring.io/libs-snapshot) 提供了开发中的快照版本,用于测试新特性和修复。 #### 二、使用 Spring Data Repositories Spring Data Repositories 提供了一个高度抽象...
Spring的核心特性之一是反转控制(IoC),它通过容器管理对象的生命周期和依赖关系。在Spring中,我们可以使用XML配置文件(如`beans.xml`)来声明Bean的定义,然后由容器负责创建和管理这些对象。例如,`<bean>`...
接下来,Spring框架是JavaWeb开发的高级阶段,它是一个全面的企业级应用框架,提供了依赖注入(DI)和面向切面编程(AOP)等核心特性。Spring框架简化了JavaWeb开发,通过DI,我们可以轻松管理对象的生命周期和它们...
本代码中还包括了一个java自带注解的例子写的都非常易懂对于hellospring中第一位回复者的问题spring4.0与以前的有什么不同最大的不同包用的不一样了哈哈支持的新技术更多了具体新特性会在后面例子中一点点体现
- **易用性:** 通过Spring框架的集成特性,可以很容易地在现有的Spring应用中引入安全功能。 - **内容结构组织:** - 本书分为两个主要部分:“基础篇”与“保护Web篇”。其中,“基础篇”主要介绍Spring ...
Spring Boot的自定义配置属性源(PropertySource)是框架中一个强大的特性,它允许开发者引入额外的配置文件或从各种来源获取配置,以满足不同环境的特定需求。配置覆盖是解决多环境配置问题的一种常见策略,它允许...
通过以上分析可以看出,Spring Cloud为开发者提供了一套完整的微服务解决方案,不仅包括服务注册与发现、负载均衡、服务间调用等功能,还包括熔断器、API网关等高级特性。这些组件相互配合,可以极大地提高开发效率...
Spring Session 的特性 1. 提供用户 session 管理的 API 和实现 2. 提供 HttpSession,以中立的方式取代 web 容器的 session,比如 tomcat 中的 session 3. 支持集群的 session 处理,不必绑定到具体的 web 容器去...
3. Spring配置方法: - XML配置:传统上,Spring使用XML文件来定义Bean及其依赖关系。这种方式直观且灵活,但可能会导致配置文件过于庞大。 - 注解配置:通过在类和方法上使用特定注解,如@Service、@Repository、...
此外,Spring Boot 2.4还引入了对Properties文件的多文档支持,类似于YAML的多文档特性。通过在注释后跟随三个破折号,可以在一个Properties文件中创建多个逻辑段,每个段可以视为独立的配置部分。 举个例子,假设...
3. **属性覆盖**:Spring Boot遵循“后加载覆盖前加载”的原则,即后面的配置文件中的属性会覆盖前面文件中相同的属性。这意味着命令行参数的配置具有最高优先级,其次是环境变量和系统属性,最后是文件中的配置。 ...
MyBatis_Spring 是一个将 MyBatis 数据库持久层框架与 Spring 框架集成的库,它简化...同时,随着技术的发展,MyBatis 社区也在不断更新,新的版本可能包含更多的功能和改进,因此保持对最新技术的关注也是十分重要的。
Spring Security 是一个强大的安全框架,用于Java和Java EE应用程序的安全管理。...这种实现方式具有可扩展性,适用于各种规模的应用,并且由于JWT的轻量级特性,非常适合分布式系统和微服务架构。
这是Hibernate3引入的新特性,对于包含重量级大数据的表字段,这种抽取方式提高了对大字段操作的灵活性,否则加载Tfile对象的结果集时如果总是返回fileContent,这种批量的数据抽取将可以引起数据库的"洪泛效应"。...
Spring Boot在开始的时候是1.5并没使用2.0的新版本特性。所以如果换版本可能会存在仓库层的方法需要更换以及。一系列的东西需要更改。MogonDB file 已经在我的仓库中贴了出来前端使用Thymeleaf 提供spring标准方言和...
首先,我们可以利用Spring Boot的AOP(面向切面编程)特性来实现这一功能。AOP允许我们在不修改原有业务逻辑的情况下,插入额外的处理逻辑,如日志记录、权限验证等。对于频率控制,我们可以在每个API调用前检查其...