springcloud服務間的呼叫有兩種方式:resttemplate和feignclient。不管是什麼方式,他都是通過rest介面呼叫服務的http介面,引數和結果預設都是通過jackson序列化和反序列化。因為spring mvc的restcontroller定義的介面,返回的資料都是通過jackson序列化成json資料。
一、resttemplate
使用這種方式,只需要定義乙個resttemplate的bean,設定成loadbalanced即可。
如下示例:
@configuration
public
class
somecloudconfiguration
}
這樣我們就可以在需要用的地方注入這個bean使用:
public
class
someserviceclass
}
其它示例參考:
public
class
@bean
public
resttemplate resttemplate()
public
static
void
main(string args)
}
@restcontroller
class
homecontroller
}
二、feignclient
除了上面的方式,我們還可以用feignclient。
@feignclient(value =
"users"
, path =
"/users"
)
public
inte***ce
usercompositeservice "
,
method = requestmethod.get,
userdto getuserbyid(@pathvariable long id);
}
我們只需要使用@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...