SpringBoot(三)_controller的使用

airland發表於2021-09-09

針對controller 中 如何使用註解進行解析

@RestController

  • 返回資料型別為 Json 字串,特別適合我們給其他系統提供介面時使用。

@RequestMapping

(1) 不同字首訪問同一個方法,此時訪問hello和hi 都可以訪問到say()這個方法

    @RequestMapping(value = {"/hello","/hi"},method = RequestMethod.GET)
    public String say(){
        return girlProperties.getName();
    }

(2)給類一個RequestMapping, 訪問時就是:

@RestController
@RequestMapping("/hello")
public class HelloController {

    @Resource
    private  GirlProperties girlProperties;
    @RequestMapping(value = "/say",method = RequestMethod.GET)
    public String say(){
        return girlProperties.getName();
    }
}

@PathVariable:獲取url中的資料

@RestController
@RequestMapping("/hello")
public class HelloController {

    @Resource
    private  GirlProperties girlProperties;
    @RequestMapping(value = "/say/{id}",method = RequestMethod.GET)
    public String say(@PathVariable("id") Integer id){
        return "id :"+id;
    }
}

訪問 結果如下

id :100

@RequestParam :獲取請求引數的值

(1) 正常請求

@RestController
@RequestMapping("/hello")
public class HelloController {

    @Resource
    private  GirlProperties girlProperties;
    @RequestMapping(value = "/say",method = RequestMethod.GET)
    public String say(@RequestParam("id") Integer id){
        return "id :"+id;
    }
}

訪問 結果如下

id :111

(2)設定引數非必須的,並且設定上預設值

@RestController
@RequestMapping("/hello")
public class HelloController {

    @Resource
    private  GirlProperties girlProperties;
    @RequestMapping(value = "/say",method = RequestMethod.GET)
    public String say(@RequestParam(value = "id",required = false,defaultValue = "0") Integer id){
        return "id :"+id;
    }
}

訪問 結果如下

id :0

@GetMapping ,當然也有對應的Post等請求的簡化寫法

  • 這裡對應的就是下面這句程式碼
    @GetMapping("/say")
    //等同於下面程式碼
    @RequestMapping(value = "/say",method = RequestMethod.GET)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/964/viewspace-2802518/,如需轉載,請註明出處,否則將追究法律責任。

相關文章