SpringBoot常用注解

1.SpringBoot的@RequestMapping注解介绍

  • 是一个非常常见的注解,他是一个用来处理地址映射请求的注解,可以用于方法或者类上进行以产生对应路径的。如果用于类上,大多数是为了进行区分controller。用于方法上则是对方法进行注解以产生访问的路径。
    下面是一个同时在类和方法上应用了 @RequestMapping 注解的示例:

@RestController
@RequestMapping("/home")
public class IndexController {
    @RequestMapping("/")
    String get() {
        //mapped to hostname:port/home/
        return "Hello from get";
    }
    @RequestMapping("/index")
    String index() {
        //mapped to hostname:port/home/index/
        return "Hello from index";
    }
}
  • 到 /home 的请求会由 get() 方法来处理,而到 /home/index 的请求会由 index() 来处理。
@RequestMapping 来处理多个 URI
  • 你可以将多个请求映射到一个方法上去,只需要添加一个带有请求路径值列表的 @RequestMapping 注解就行了。
@RestController
@RequestMapping("/home")
public class IndexController {
 
    @RequestMapping(value = {
        "",
        "/page",
        "page*",
        "view/*,**/msg"
    })
    String indexMultipleMapping() {
        return "Hello from index multiple mapping.";
    }
}
  • @RequestMapping 是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上表示类中的所有响应请求的方法都是以该地址作为父路径。value:()请求的实际地址。method:()请求类型,GET、POST等。consumes:指定请求体内容类型(Content-Type)如application/json, text/html。produces: 指定响应内容类型,仅当request请求头中的(Accept)中包含该指定类型才返回。params:指定request中必须包含某些参数值是,才让该方法处理。headers:指定request中必须包含某些指定的header值,才能让该方法处理请求。

@RequestMapping(value = "/register", method = RequestMethod.POST)
public String register(HttpServletRequest request, HttpServletResponse response){
    return "注册成功";
}

2.controller(控制)层的@Controller注解

  • @Controller 用于标记在一个类上,表示一个SpringMVC Controller对象。通过Spring使用扫描机制查找应用程序中所有基于注解的控制器类。分发处理器会扫描使用了Controller注解的类的方法是否使用了RequestMapping注解,只有使用了RequestMapping注解的方法才是真正处理请求的处理器。
@Controller
public class UserController {
    @RequestMapping(value = "/login",method = RequestMethod.POST)
    public String login(){
        return "index"; // 跳转到index页面
    }
}

3.@RestController和@Controller区别

  • @RestController注解相当于@ResponseBody + @Controller合在一起的作用。
    如果只是使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,或者html,配置的视图解析器 InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。

  • 如果需要返回到指定页面,则需要用 @Controller配合视图解析器InternalResourceViewResolver才行。
    如果需要返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解。

  • 如果需要返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解。

注意:在controller类中,添加RestController后后台不能重定向页面,如果需要重定向页面,则需要使用Controller,在需要返会数据的方法上添加@ResponseBody

4.@RequestParam:

  • 将请求参数绑定到你控制器的方法参数上(是springmvc中接收普通参数的注解)
语法:@RequestParam(value=”参数名”,required=true/false,defaultValue=””)
 
value:参数名
 
required:是否包含该参数,默认为true,表示该请求路径中必须包含该参数,如果不包含就报错。
 
defaultValue:默认参数值,如果设置了该值,required=true将失效,自动为false,如果没有传该参数,就使用默认值

5.注解@CrossOrigin

出于安全原因,浏览器禁止Ajax调用驻留在当前原点之外的资源。例如,当你在一个标签中检查你的银行账户时,你可以在另一个选项卡上拥有EVILL网站。来自EVILL的脚本不能够对你的银行API做出Ajax请求(从你的帐户中取出钱!)使用您的凭据。

跨源资源共享(CORS)是由大多数浏览器实现的W3C规范,允许您灵活地指定什么样的跨域请求被授权,而不是使用一些不太安全和不太强大的策略,如IFRAME或JSONP。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值