SpringCloud服務間呼叫

2021-09-07 14:56:15 字數 1199 閱讀 3456

springcloud服務間的呼叫有兩種方式:resttemplate和feignclient。不管是什麼方式,他都是通過rest介面呼叫服務的http介面,引數和結果預設都是通過jackson序列化和反序列化。因為spring mvc的restcontroller定義的介面,返回的資料都是通過jackson序列化成json資料。

一、resttemplate

使用這種方式,只需要定義乙個resttemplate的bean,設定成loadbalanced即可。

如下示例:

@configuration

public class somecloudconfiguration

}

這樣我們就可以在需要用的地方注入這個bean使用:

public class someserviceclass 

}

其它示例參考:

@bean

public resttemplate resttemplate()

public static void main(string args) }

@restcontroller

class homecontroller }

二、feignclient

除了上面的方式,我們還可以用feignclient。

@feignclient(value = "users", path = "/users")

public inte***ce usercompositeservice

我們只需要使用@feignclient定義乙個介面,spring cloud feign會幫我們生成乙個它的實現,從相應的users服務獲取資料。

其中,@feignclient(value = 「users」, path = 「/users/getuserdetail」)裡面的value是服務id,path是這一組介面的path字首。在下面的方法定義裡,就好像設定spring mvc的介面一樣,對於這個方法,它對應的url是/users/getuserdetail/。然後,在使用它的時候,就像注入乙個一般的服務一樣注入後使用即可:

public class someotherserviceclass 

}

其中遇到的坑請參見:

SpringCloud服務調服務

org.springframework.cloud spring cloud starter feign enablefeignclients configuration public class mybatisplusconfig 資料許可權外掛程式 return datascopeinterce...

SpringCloud服務間呼叫

springcloud服務間的呼叫有兩種方式 resttemplate和feignclient。不管是什麼方式,他都是通過rest介面呼叫服務的http介面,引數和結果預設都是通過jackson序列化和反序列化。因為spring mvc的restcontroller定義的介面,返回的資料都是通過ja...

springcloud服務間的呼叫

一。resttemplate的方式 1.url寫死的方式 resttemplate resttemplate new resttemplate string msg resttemplate.getforobject http localhost 8080 server msg string.cla...