Spring mvc注解

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情
@Controller

Controller控制器是通过服务接口定义的提供访问应用程序的一种行为,它解释用户的输入,将其转换成一个模型然后将试图呈献给用户。
Spring MVC 使用 @Controller 定义控制器,它还允许自动检测定义在类路径下的组件并自动注册。

<context:component-scan base-package="org.springframework.samples.petclinic.web"/> 
@RequestMapping

@RequestMapping 注解将类似 “/favsoft”这样的URL映射到整个类或特定的处理方法上。
一般来说,类级别的注解映射特定的请求路径到表单控制器上,而方法级别的注解只是映射为一个特定的HTTP方法请求(“GET”,“POST”等)或HTTP请求参数。

@PathVariable
  • 使用 @PathVariable 注解方法参数并将其绑定到URI模板变量的值上
  • @PathVariable中的参数可以是任意的简单类型,如int, long, Date等等。
  • @PathVariable支持使用正则表达式,这就决定了它的超强大属性,它能在路径模板中使用占位符,可以设定特定的前缀匹配,后缀匹配等自定义格式。
@RequestMapping(value="/owners/{ownerId}/pets/{petId}", method=RequestMethod.GET)
public String findPet(@PathVariable String ownerId, @PathVariable String petId, Model model) 
{
    Owner owner = ownerService.findOwner(ownerId);
    Pet pet = owner.getPet(petId);
    model.addAttribute("pet", pet);    
    return "displayPet";
}
@RequestParam

@RequestParam将请求的参数绑定到方法中的参数上,如下面的代码所示。其实,即使不配置该参数,注解也会默认使用该参数。如果想自定义指定参数的话,如果将@RequestParam的 required 属性设置为false(如@RequestParam(value=”id”,required=false))。

@RequestBody

@RequestBody是指方法参数应该被绑定到HTTP请求Body上。

@RequestMapping(value = "/something", method = RequestMethod.PUT)
public void handle(@RequestBody String body, Writer writer) throws IOException 
{
    writer.write(body);
}
@ResponseBody

@ResponseBody与@RequestBody类似,它的作用是将返回类型直接输入到HTTP response body中。@ResponseBody在输出JSON格式的数据时,会经常用到

@RequestMapping(value = "/something", method = RequestMethod.PUT)
@ResponseBody
public String helloWorld() 
{    
   return "Hello World";
}
@RestController

我们经常见到一些控制器实现了REST的API,只为服务于JSON,XML或其它自定义的类型内容,@RestController用来创建REST类型的控制器,与@Controller类型。@RestController就是这样一种类型,它避免了你重复的写@RequestMapping与@ResponseBody。

@RestController
public class FavRestfulController 
{ 
             @RequestMapping(value="/getUserName",method=RequestMethod.POST)
    public String getUserName(@RequestParam(value="name") String name)
    {
       return name;
    }
}
@ModelAttribute
  • @ModelAttribute可以作用在方法或方法参数上,当它作用在方法上时,标明该方法的目的是添加一个或多个模型属性,控制器中的@ModelAttribute方法会在@RequestMapping方法调用之前而调用@ModelAttribute方法用来在model中填充属性,如填充下拉列表、宠物类型或检索一个命令对象比如账户(用来在HTML表单上呈现数据)。
  • @ModelAttribute方法有两种风格:
    • 一种是添加隐形属性并返回它。
    • 另一种是该方法接受一个模型并添加任意数量的模型属性。用户可以根据自己的需要选择对应的风格。
  • @ModelAttribute作用在方法参数上,表明该参数可以在方法模型中检索到。如果该参数不在当前模型中,该参数先被实例化然后添加到模型中。一旦模型中有了该参数,该参数的字段应该填充所有请求参数匹配的名称中。这是Spring MVC中重要的数据绑定机制,它省去了单独解析每个表单字段的时间。
  • @ModelAttribute是一种很常见的从数据库中检索属性的方法,它通过@SessionAttributes使用request请求存储。在一些情况下,可以很方便的通过URI模板变量和类型转换器检索属性。
@ModelAttribute
public Account addAccount(@RequestParam String number) 
{
    return accountManager.findAccount(number);
}

@ModelAttribute
public void populateModel(@RequestParam String number, Model model) 
{                                   
    model.addAttribute(accountManager.findAccount(number));    
 // add more ...
} 
Spring MVC 系列(二)——基于注解的开发 上一篇博客介绍了Spring MVC的核心组件和工作流程,众所周知,实现同样的功能,相较于繁琐的配置文件而言,使用注解便简单高效的多。Spring 自 2.0 版本开始,陆续引入了一些注解用于简化 Spring 的开发本文就将介绍Spring MVC常用注解以及使用场景。 一、Spring常用注解 @Controller——>控制层 @Service    ——>业务层 @Reposito 阅读详情

相关推荐

Spring Boot和Spring MVC常用注解

Spring Boot和Spring MVC注解大大简化了配置和启动流程,使得开发者可以更加专注于业务逻辑的实现。

翱翔-蓝天 1228

Spring MVC常用注解(绝对经典)

学习 spring MVC 可以说,就是学习其注解,本文总结了 spring MVC 开发中常用的注解,希望能够帮助到您。

2301_80035594的博客 4330

Spring MVC 注解 - 通过注解Spring MVC 运行起来

Spring MVC 是一个流行的 Java Web 框架,它基于 MVC(Model-View-Controller)模式,用于构建灵活可扩展的 Web 应用程序。在 Spring MVC 中,使用注解是一种简洁而强大的方式来配置和管理控制器、请求映射和其他关键组件。本文将详细介绍如何使用注解来编写 Spring MVC 应用程序,并提供相应的源代码示例。

2301_79326510的博客 96

Spring MVC的常用注解

一 点睛 1 @Controller @Controller注解在类上,表明这个类是Spring MVC里的Controller,将其声明为Spring的一个Bean,Dispatch Servlet会自动扫描注解了此注解的类,并将Web请求映射到注解了@RequestMapping的方法上,需要注意的是,在Spring MVC声明控制器Bean的时候,只能使用@Controller。 2 ...

实践求真知 1万+

Spring MVC常用注解【@Controller】

org.springframework.stereotype.Controller注解用于指示Spring类的实例是一个控制器,使用@Controller 注解的类不需要继承特定的父类或者实现特定的接口,相对之前的版本实现Controller 接口变得更加简单。而且 Controller 接口的实现类只能处理一个单一请求动作,而@Controller注解的控制器可以支持同时处理多个请求动作,更加灵活

一块大洋 2万+

【十四】彻底弄懂Spring MVC常用注解

本章全面梳理了springmvc日常开发中常用的注解,通过结合实例进行分析各注解的使用场景,并且讲解了各注解的原理和作用,大家可以通过本篇文章全面了解到mvc中的注解,结合自己的实践可以深入了解spring源码以及spring mvc的设计思想。希望本文对读者有所帮助。

作者:大头兵(kit) 926

Spring MVC常见注解详解

Spring MVC提供了丰富的注解,以简化Web应用开发过程。下面我将详细描述一些主要的注解、它们的作用、应用场景以及具体的应用示例。

Rubypyrrha的博客 1964

全面解读 SpringSpring MVC 常用注解

Spring 是一个功能强大的 Java 框架,用于构建企业级应用程序。Spring MVCSpring 框架的一部分,专注于构建基于 Web 的应用程序。为了有效地使用这些框架,了解常用注解及其应用场景至关重要。

开源AI 专属 UI——papyrai-ui。《千界明彻录》(故事形式构建元思维)——胡说小说。更多思辨内容在公众号。 1753

Spring MVC 4常用的那些注解

Spring从2.5版本开始在编程中引入注解,用户可以使用@RequestMapping, @RequestParam, @ModelAttribute等等这样类似的注解。到目前为止,Spring的版本虽然发生了很大的变化,但注解的特性却是一直延续下来,并不断扩展,让广大的开发人员的双手变的更轻松起来,这都离不开Annotation的强大作用,今天我们就一起来看看Spring MVC 4中常用

小尘 1万+

Spring MVC所有注解

ControllerAdvice 对声明了@ExceptionHandler、@InitBinder或@ModelAttribute方法并在多个@Controller类之间共享的类进行@Component专门化。 CookieValue 注释,指示方法参数应该绑定到HTTP cookie。 方法参数可以声明为类型javax.servlet.http.Cookie,也可以声明为cookie值类型(字符串、int等)。 CrossOrigin 用于允许对特定处理程序类和/或处理程序方法的跨源请求的注释。如果配置

weixin_46259203的博客 453

Spring MVC @PathVariable 注解怎么用?

用于从URL 路径(URI 模板变量)中提取值。通过在或其变体中使用定义模板变量。默认情况下,方法参数名需要与占位符名匹配。使用name或value属性处理名称不匹配的情况。Spring 自动进行类型转换,失败会抛出异常 (HTTP 400)。可以处理多个路径变量。路径变量默认是必需的;处理可选路径段的最佳方式是定义多个 Handler 方法。不要与混淆,后者用于提取查询参数或表单数据。

专注于技术分享 1438

Spring MVC @RequestHeader 注解怎么用?

用于将HTTP 请求头的值绑定到方法参数。必须使用name或value属性指定要读取的头名称(除非特殊情况,但不推荐省略)。使用使头变为可选(不存在时为null或使用为可选头提供默认值(头不存在时生效,隐含可以将多值头(逗号分隔)绑定到List或数组。可以通过将应用于Map或(推荐的对象来访问所有头信息。与(用于查询/表单参数)和(用于路径变量)不同,专注于 HTTP Headers。

专注于技术分享 1107

Spring MVC基于注解的Controller

本文实现一个基于注解Spring MVC Controller。本文主要在于简述实现过程,旨在实现最简单易懂的注解Controller,具体理论请自行百度查阅。 1、新建web工程 本工程使用自行添加的spring库,库版本为Spring 3.0。主要原因是自己在用MyEclipse导入库时经常出现遗漏包的问题,所以将需要的lib自行添加到classPath中。 2、添加依

三言两语 1312

Spring MVC 注解说明

基于注解的控制器 优点: 1.一个控制器类可以处理多个动作(而一个实现了Controller接口的控制器只能处理一个动作)。这 样就可以吧相关的操作写在同一个控制器类中了,减少了应用程序中类的数量。 2.基于注解的控制器的请求映射不需要存储在配置文件中。使用RequestMapping注释类型,就可以对一个方法进行请求处理。@Controller @Controller 负责注册一个

lhy的博客 472

spring MVC基础注解汇总

简要介绍了spring MVC中所有类型的注解的作用与使用方法

m0_73837751的博客 1552

Spring MVC注解式控制器开发

REST(表征状态转移)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。对站点资源的CRUD操作:查询,添加,更新,删除http请求的方式:GET, POST, PUT, DELETEREST 从资源的角度来观察整个网络,分布在各处的资源由URI确定,而客户端的应用通过URI来获取资源的表征。获得这些表征致使这些应用程序转变了其状态。随着不断获取资源的表征,客户端应用不断地在转变着其状态,所谓表征状态转移。如果一个架构符合REST原则,就称它为RESTful架构。

m0_74808313的博客 1378

梳理注解Spring MVC原理

文章目录了解war包文件结构创建Maven项目Maven打包war包流程Spring MVC注解版驱动pom文件配置Servlet3.0Servlet容器启动之ServletContainerInitializerSpring MVCSpringServletContainerInitializerSpringServletContainerInitializerWebApplicationIn...

TONKIA的技术博客 272

Java直通车系列13【Spring MVC】(Spring MVC常用注解

Java直通车系列正在连载更新中,更新的内容包括JSP、Spring MVCSpring Boot、Spring Cloud完整学习资料以及详细解释代码示例,关注我,持续学习。

TEUTEU的博客 1760
上一篇: Spring问题2
下一篇: struts1.x、struts2.x、Spring MVC原理总结
worthliu
博客等级 码龄10年 3粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值