springboot中的注解1

@RestController和@Controller的区别

 RestController注解等价于@ResponseBody + @Controller。@RestController和@Controller的共同点是都用来表示Spring某个类是否可以接收HTTP请求。
 二者区别: @RestController无法返回指定页面,而@Controller可以;前者可以直接返回数据,后者需要@ResponseBody辅助。
 如果只是使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,或者html,配置的视图解析器 InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。
 如果需要返回到指定页面,则需要用 @Controller配合视图解析器InternalResourceViewResolver才行。
 如果需要返回JSON,XML或自定义mediaType内容到页面,@RestController自己就可以搞定,这个注解对于返回数据比较方便,因为它会自动将对象实体转换为JSON格式。而@Controller需要在对应的方法加上@ResponseBody注解。
简述:
 @Controller 作用:用于标记这个类是一个控制器,返回页面的时候使用;如果要返回JSON,则需要在接口上使用@ResponseBody才可以。:下面展示一些 代码例子

//   @Controller+@ResponseBody
// An highlighted block
@Controller
@RequestMapping(value = "/api/v1/video")
public class VideoController {

    @RequestMapping("list")
    @ResponseBody
    public Object list(){
        Map<String,String> map = new HashMap<>();
        map.put("1","123");
        map.put("2","微服务");
        return map;
    }
}

 @RestController作用:用于标记这个类是一个控制器,返回JSON数据的时候使用;如果使用这个注解,则接口返回数据会被序列化为JSON。下面展示一些 示例代码

// @RestController
// An highlighted block
//@Controller
@RestController
@RequestMapping(value = "/api/v1/video")
public class VideoController {

    @RequestMapping("list")
    //@ResponseBody
    public Object list(){
        Map<String,String> map = new HashMap<>();
        map.put("1","123");
        map.put("2","微服务");
        return map;
    }
}

所以,@RestController=@Controller+@ResponseBody

@RequestMapping注解详解

 RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。RequestMapping注解有六个属性,分三组介绍:
 1、value,method
 value: 指定请求的实际地址,指定的地址可以是URI Template 模式、可以RestFul动态获取、也可以使用正则设置;
 method: 指定请求的method类型, GET、POST、PUT、DELETE等;
 2、consumes,produces
 consumes: 指定处理请求的提交内容类型(Content-Type),例如application/json, text/html;

 produces: 指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回;例如:produces = “application/json;charset=UTF-8”
 3、params,headers
 params: 指定request中必须包含某些参数值是,才让该方法处理。

 headers: 指定request中必须包含某些指定的header值,才能让该方法处理请求。
在这里插入图片描述
@GetMapping、@PostMapping 后面补充
@GetMapping = @RequestMapping(method = RequestMethod.GET)

@PostMapping = @RequestMapping(method = RequestMethod.POST)

@PutMapping = @RequestMapping(method = RequestMethod.PUT)

@DeleteMapping = @RequestMapping(method = RequestMethod.DELETE)

@SpringBootApplication注解

 @SpringBootApplication注解作用:用于标记是SpringBoot应用,里面包含多个子注解,即:
@SpringBootApplication = @Configuration+@EnableAutoConfiguration+@ComponentScan

@Configuration: 主要标注在某个类上,用于spring扫描注入,一般结合@bean使用;
@EnableAutoConfiguration: 启用spring的自动加载配置,自动载入应用程序所用的所有的Bean;
@ComponentScan:告诉spring扫描包的范围,默认是Application类所在的全部子包,可以指定其他包;
@ComponentScan({“net.xdclass.package1”,“net.xdclass.package2”})

@RequestBody注解

  @RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的);GET方式无请求体,所以使用@RequestBody接收数据时,前端不能使用GET方式提交数据,而是用POST方式进行提交。其详细用法参考链接: https://blog.csdn.net/justry_deng/article/details/80972817

参考文章:链接: https://www.cnblogs.com/jpfss/p/9546142.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值