【SpringBoot】部分註解介紹
阿新 • • 發佈:2019-01-05
Controller註解
用來處理Http請求的
用在類上面
RequestMapping註解
用來配置Url的對映
可在類或者方法上
在類上時,該註解的對映作用在該類的所有方法上
需要兩個地址都訪問該註解的方法時,可以將地址用逗號隔開,例如:
@RequestMapping(value = {"/people","people2"},method = RequestMethod.GET)
public People people() {//返回的是物件的JSON字串
return people;
}
另外還有@GetMapping,@PostMapping,@PutMapping等組合註解
@GetMapping(value=”/test”)其實就是相當於
@RequestMapping(value = “/test”,method = RequestMethod.GET)
可以看一下GetMapping註解的實現:
...
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@RequestMapping(
method = {RequestMethod.GET}
)
public @interface GetMapping {
@AliasFor(
annotation = RequestMapping.class
)
String name() default "";
...
}
可以看到,GetMapping註解繼承了RequestMapping註解,並且對於RequestMapping註解中的method屬性有一個GET的賦值
所以囖,一目明瞭。
RestController註解
Spring4之後新加的註解,相當於@Controller和@ResponseBody註解的配合使用。
可以直接返回json字串
比如上一篇部落格使用的,直接在Controller返回一個類物件,在前臺看到的是json字串
可以看下該註解的原始碼:
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Controller
@ResponseBody
public @interface RestController {
String value() default "";
}
PathVariable註解
獲取url中的引數。
例如:
@GetMapping(value = "/getId/{id}")
public Integer getPeople(@PathVariable(value = "id")Integer ida) {
return ida;
}
我特意將變數命名為ida以區分url和註解中的id。
RequestParam註解
獲取請求引數的值
例如:
@GetMapping(value = "/getName")
public String getPeople(@RequestParam(value = "name")String nameStr) {
return nameStr;
}
不做過多解釋啦,學過spring和springmvc的朋友早就懂了的。
其實RequestParam註解也可以省略不寫的,這個時候,url傳進來的引數就需要和變數名對應上了
還可以給引數設定預設值,可以這樣使用:
/**
* @RequestParam
* required-false 表示不是必須傳的
* defaultValue 這個就是引數的預設值,但是注意,這裡的值必須是字串
* @param nameStr
* @return
*/
@GetMapping(value = "/say")
public String say(@RequestParam(value = "name",required = false,defaultValue = "0") String nameStr) {
return nameStr;
}
這篇挺簡單的,沒有什麼多的東西,就沒啥程式碼了,我在後面把那個Controller類貼出來。
建議初學的先從前面的該類部落格看
package cn.chenhaoxiang;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* Created with IntelliJ IDEA.
* User: 陳浩翔.
* Date: 2017/12/25.
* Time: 下午 9:44.
* Explain:
*/
@RestController
public class HelloController {
@Autowired
private People people;
@RequestMapping(value = {"/people","people2"},method = RequestMethod.GET)
public People people() {//返回的是物件的JSON字串
return people;
}
@GetMapping(value = "/getId/{id}")
public Integer getId(@PathVariable(value = "id")Integer ida) {
return ida;
}
@GetMapping(value = "/getName")
public String getName(@RequestParam(value = "name")String nameStr) {
return nameStr;
}
@GetMapping(value = "/getNameStr")
public String getNameStr(String nameStr) {//url傳進來的引數需要和變數名對應上
return nameStr;
}
/**
* @RequestParam
* required-false 表示不是必須傳的
* defaultValue 這個就是引數的預設值,但是注意,這裡的值必須是字串
* @param nameStr
* @return
*/
@GetMapping(value = "/say")
public String say(@RequestParam(value = "name",required = false,defaultValue = "0") String nameStr) {
return nameStr;
}
}
本文章由[諳憶]編寫, 所有權利保留。
歡迎轉載,分享是進步的源泉。