Spring常用注解

@RequestMapping

RequestMapping是一个用来处理请求地址映射的注解,可用于类、接口货方法上,用于类或者接口上的时候,表示类中的所有相应请求的方法都是以该地址作为父路径,基本字段有name,path(value)(path 和 value 互相引用),method,params,headers,consumes,produces 

value(path)

  指定请求的实际地址,指定的地址可以是 URI Template 模式

method 

          指定请求的 method 类型。例如 GET、POST、PUT、DELETE 等

consumes

  指定处理请求的提交内容类型(Content-Type),例如application/json,text/html;

produces

  指定返回的内容类型,仅当 request 请求头中的(Accept)类型中包含该指定类型才返回

params

  指定 request 中必须包含某些参数值,才让该方法处理请求。

header

  指定 request 中必须包含某些指定的 header 值,才能让该方法处理请求。

@GetMapping是一个组合注解 是@RequestMapping(method = RequestMethod.GET)的缩写

@PostMapping是一个组合注解 是@RequestMapping(method = RequestMethod.POST)的缩写

 

@RequestParam

GET和POST请求传的参数会自动转换赋值到@RequestParam 所注解的变量上

@RequestMapping(value="/requestParamTest", method = RequestMethod.GET)
    public String requestParamTest(@RequestParam(value="username") String userName, @RequestParam(value="usernick") String userNick){
        System.out.println("requestParam Test");
        System.out.println("username: " + userName);
        System.out.println("usernick: " + userNick);
        return "hello";
    }

上述代码会将请求中的username参数的值赋给username变量。

@PathVariable

@PathVariable用来获得请求url中的动态参数,将请求URL中的模板变量映射到功能处理方法的参数上

@RequestMapping("/users/{username}")
    @ResponseBody
    public String userProfile(@PathVariable String username){
//        return String.format("user %s", username);
        return "user" + username; 
    }

@RequestParam和@PathVariable两者的作用都是将request里的参数的值绑定到contorl里的方法参数里的,区别在于,URL写法不同。

使用@RequestParam时,URL是这样的:http://host:port/path?参数名=参数值

使用@PathVariable时,URL是这样的:http://host:port/path/参数值

@RequestBody

@RequestBody注解可以接收json格式的数据,并将其转换成对应的数据类型。

作用: 

      i) 该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上;

      ii) 再把HttpMessageConverter返回的对象数据绑定到 controller中方法的参数上。

@RequestBody用于post请求,不能用于get请求

 

@ResponseBody

作用: 

      该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。

使用时机:

      返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用;

@ModelAttribute

被@ModelAttribute注释的方法会在此controller每个方法执行前被执行

@ModelAttribute注解类型将参数绑定到Model对象

 

当前台界面使用GET或POST方式提交数据时,数据编码格式由请求头的ContentType指定。分为以下几种情况:
1. application/x-www-form-urlencoded,这种情况的数据@RequestParam、@ModelAttribute可以处理,@RequestBody也可以处理。
2. multipart/form-data,@RequestBody不能处理这种格式的数据。(form表单里面有文件上传时,必须要指定enctype属性值为multipart/form-data,意思是以二进制流的形式传输文件。)
3. application/json、application/xml等格式的数据,必须使用@RequestBody来处理。

@Component

@Component注解用于标注一个普通的组件类,没有明确的业务范围,只是通知Spring,被次注解的类需要被纳入到Spring Bean容器中并进行管理。

@Bean

@Bean是一个方法级别上的注解

@Scope

用于定义@Component和@Bean标注的类或方法的作用范围

@scope默认是单例模式(singleton)即:@scope("prototype")

1.singleton单例模式,

  全局有且仅有一个实例

2.prototype原型模式,

  每次获取Bean的时候会有一个新的实例

3.request  

        request表示该针对每一次HTTP请求都会产生一个新的bean,同时该bean仅在当前HTTP request内有效,

4.session 

         session作用域表示该针对每一次HTTP请求都会产生一个新的bean,同时该bean仅在当前HTTP session内有效

5.global session

         global session作用域类似于标准的HTTP Session作用域
 

 

 

参考链接:

https://www.cnblogs.com/mmzs/p/8831929.html

https://www.cnblogs.com/feiyu127/p/7700090.html

https://www.cnblogs.com/mmzs/p/8831929.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值