現在我們來學習一下RequestMapping注解,
RequestMapping注解用來將url映射到一個控制類(Controller類)或一個特定處理的方法上,
一、RequestMapping使用的位置
1.方法上
直接上實體:
package com.jms.controller; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class MainController { @RequestMapping("/t1") public String test1(Model model) { model.addAttribute("message", "test1"); return "main"; } }

此時直接訪問類上注解的地址即可發起請求,
2.類上
使用在類上時不能僅僅使用在類上,還需要同時使用在方法上,
使用在類上相當于給使用RequestMapping注解的方法添加了一個父關系,也就說在實際請求時需要將類注解的url和方法注解的地址拼接起來,看下面的例子:
package com.jms.controller; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; @Controller @RequestMapping("/m1") public class MainController { @RequestMapping("/t1") public String test1(Model model) { model.addAttribute("message", "test1"); return "main"; } }
此時在類和方法上都有注解,我們訪問一下:

此時我們需要訪問類注解和方法注解拼接起來的路徑才能夠發起請求,
一般來說直接在方法上寫死即可,無需在類上進行RequestMapping注解的使用,
二、RequestMapping注解的屬性
我們來看一下RequestMapping注解的原始碼:
@Target({ElementType.TYPE, ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Documented @Mapping public @interface RequestMapping { String name() default ""; @AliasFor("path") String[] value() default {}; @AliasFor("value") String[] path() default {}; RequestMethod[] method() default {}; String[] params() default {}; String[] headers() default {}; String[] consumes() default {}; String[] produces() default {}; }
1.name屬性:這個屬性相當于方法的注釋,使方法更容易理解,
2.value屬性:指定請求的實際地址,指定的地址可以是URI 模板模式(Template Pattern),這里用的是陣列,說明可以有多個值;value屬性是RequestMapping注解的默認屬性,我們所寫的@RequestMapping("/t1")實際上就是@RequestMapping(value = "https://www.cnblogs.com/t1"),
3.path屬性:有原始碼中可見,path與value互為別名,也就是說它和value屬性的作用是相同的,
4.method屬性:指定請求的型別,我們看一下RequestMethod的原始碼如下:

由此我們衍生出來了一些新的注解,如
@GetMapping
@PostMapping
@PutMapping
@PatchMapping
@DeleteMapping
@GetMapping("/t1")就等價于@RequestMapping(value="https://www.cnblogs.com/t1", method=RequestMethod.GET),
(本文僅作個人學習記錄用,如有紕漏敬請指正)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/516289.html
標籤:Java
上一篇:Java中如何保證浮點數計算精度
下一篇:起航 | 編程王國之我的大廠夢
