關於openfeign的參數傳遞


openfeign接口代碼示例:

@FeignClient(name="調用的服務名稱", path="demo")
public interface FeignTest{
    /**
     * 參數為空時
     * @return
     */
    @RequestMapping("demo1")
    String demo1();

    /**
     * 當參數在url路徑上時
     * @param id
     * @return
     */
    @RequestMapping("demo2/{id}")
    String demo2(@PathVariable("id") int id);

    /**
     * 當傳遞普通參數時
     * @param name
     * @return
     */
    @RequestMapping("demo3")
    String demo3(@RequestParam("name") String name, @RequestParam("age") int age);

    /**
     * 當傳遞復雜對象參數時
     * @param userinfo
     * @return
     */
    @RequestMapping("demo4")
    String demo4(@RequestBody Userinfo userinfo);

    /**
     * 當參數放請求頭中時
     * @param source
     * @return
     */
    @RequestMapping("demo5")
    String demo5(@RequestHeader("source") String source);
}

對應服務端代碼如下:

@RestController
@RequestMapping("demo")
public TestController{
    @RequestMapping("demo1")
    public String demo1() {
        System.out.println("public String demo1() method run!");
        return "success demo1!";
    }
    @RequestMapping("demo2")
    public String demo2(@PathVariable("id") int id) {
        System.out.println("public String demo2() method run!");
        System.out.println("id = " + id);
        return "success demo2!";
    }
    @RequestMapping("demo3")
    public String demo3(@RequestParam("name") String name, @RequestParam("age") int age) {
        System.out.println("public String demo3() method run!");
        System.out.println("name = " + name + ", age = " + age);
        return "success demo3!";
    }
    @RequestMapping("demo4")
    public String demo4(@RequestBody Userinfo userinfo) {
        System.out.println("public String demo4() method run!");
        System.out.println(userinfo.toString());
        return "success demo4!";
    }
    @RequestMapping("demo5")
    public String demo5(@RequestHeader("source") String source) {
        System.out.println("public String demo5() method run!");
        System.out.println(source);
        return "success demo5!";
    }
}

最后通過在消費端注入openfeign接口就可以調用相應的服務端方法了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM