SpringMVC常用注解

本文详细介绍了SpringMVC框架中的常用注解,包括@Controller、@RequestMapping、@RequestParam、@RequestBody等,以及它们在处理HTTP请求、JSON数据处理和RESTful URL映射中的应用,适合深入理解Spring MVC架构的开发者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SpringMVC常用注解

1. 基础注解

1.1 @Controller

1.1.1 注解分析
/**
 * 用于修饰表现层控制器的注解
 */
@Target({
   ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Component
public @interface Controller {
   
    /**
     * 用于指定存入IOC容器是Bean的唯一标识
     */
    @AliasFor(annotation = Component.class)
    String value() default "";
}
1.1.2 示例
/**
 * @author 刘淳
 */
@Controller
public class HelloController {
   
}

1.2 @RequestMapping

1.2.1 注解分析
/**
 * 作用:
 * 	用于建立请求URL和处理请求方法之间的对应关系。
 * 注意:
 * 	属性只要出现2个或以上时,他们的关系是与的关系。表示必须同时满足条件。
 * 出现位置:
 * 	写在类上:
 * 		请求URL的第一级访问目录。此处不写的话,就相当于应用的根目录。
 * 		它出现的目的是为了使我们的URL可以按照模块化管理,使我们的URL更加精细:
 * 	方法上:
 * 		请求URL的第二级访问目录。
 */
@Target({
   ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Mapping
public @interface RequestMapping {
   
    /**
    * name:给请求URL提供一个名称。
    */
    String name() default "";
    /**
    * value:用于指定请求的URL。它和path属性的作用是一样的。
    * 细节:
    * 在配置此属性时,写不写/都是可以的。
    */
    @AliasFor("path")
    String[] value() default {
   };
    /**
    * 它是4.2版本中加入的注解,和value属性是一样的。
    * @since 4.2
    */
    @AliasFor("value")
    String[] path() default {
   };
    /**
    * method:用于指定请求的方式。它支持以下这些类型:
    * GET, POST, HEAD, OPTIONS, PUT, PATCH, DELETE, TRACE.
    * 这些值是通过RequestMethod枚举指定的。
    */
    RequestMethod[] method() default {
   };
    /**
    * params:用于指定限制请求参数的条件。它支持简单的表达式。要求请求参数的key和value必须和配置的一模一样。
    * 例如:
    * params = {"accountName"},表示请求参数必须有accountName
    * params = {"moeny!100"},表示请求参数中money不能是100。
    */
    String[] params() default {
   };
    /**
    * headers:用于指定限制请求消息头的条件。
    * 例如:
    * RequestMapping(value = "/something", headers = "content-type=text/*")
    */
    String[] headers() default {
   };
    /**
    * consumes:用于指定可以接收的请求正文类型(MIME类型)
    * 例如:
    * consumes = "text/plain"
    * consumes = {"text/plain", "application/*"}
    */
    String[] consumes() default {
   };
    /**
    * produces:用于指定可以生成的响应正文类型。(MIME类型)
    * 例如:
    * produces = "text/plain"
    * produces = {"text/plain", "application/*"}
    * produces = MediaType.APPLICATION_JSON_UTF8_VALUE
    */
    String[] produces() default {
   };
}
1.2.2 示例
/**
* @author 刘淳
*/
@Controller
@RequestMapping("springmvc")
public class RequestMappingController {
   
    /**
     * 控制器方法
     */
    @RequestMapping(value = "hello",method = RequestMethod.GET,name = "SpringMVC的第一个请求")
    public String useRequestMapping(){
   
    	return "success";
	}
1.2.3 衍生注解
@GetMapping		@PostMapping	@PutMapping		@DeleteMapping

1.3 @RequestParam

1.3.1 注解分析
/**
 * 此注解是从请求正文中获取请求参数,给控制器方法形参赋值的。
 * 当请求参数的名称和控制器方法形参变量名称一致时,无须使用此注解。
 * 同时,当没有获取到请求参数时,此注解还可以给控制器方法形参提供默认值。
 * 注意:
 * 它只能出现在方法的参数上
 */
@Target(ElementType.PARAMETER)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RequestParam {
   
    /**
     * 用于指定获取请求参数的名称。它和name属性的作用是一样的,
     */
    @AliasFor("name")
    String value() default "";
    /**
     * 它是在4.2版本中加入的。和value属性互为引用。
     * @since 4.2
     */
    @AliasFor("value")
    String name() default "";
    /**
     * 指定参数是否必须有值。当为true时,参数没有值会报错。
     */
    boolean required() default true;
    /**
     * 在参数没有值时的默认值。
     */
    String defaultValue() default ValueConstants.DEFAULT_NONE;
}
1.3.2 示例
/**
 * @author 刘淳
 */
@Controller
public class RequestParamController {
   
    /**
    * 处理请求的控制器方法
    */
    @RequestMapping("useRequestParam")
    public String useRequestParam(@RequestParam(value = "username",required =false) String name, Integer age) {
   
        System.out.println("控制器方法执行了" + name +
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@未安

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值