最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringCloud Feign 服務(wù)調(diào)用的實(shí)現(xiàn)

 更新時(shí)間:2019年01月10日 15:07:20   作者:huanzi-qch  
Feign是一個(gè)聲明性web服務(wù)客戶端。本文記錄多個(gè)服務(wù)之間使用Feign調(diào)用,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

前言

前面我們已經(jīng)實(shí)現(xiàn)了服務(wù)的注冊(cè)與發(fā)現(xiàn)(請(qǐng)戳:SpringCloud系列——Eureka 服務(wù)注冊(cè)與發(fā)現(xiàn)),并且在注冊(cè)中心注冊(cè)了一個(gè)服務(wù)myspringboot,本文記錄多個(gè)服務(wù)之間使用Feign調(diào)用。

Feign是一個(gè)聲明性web服務(wù)客戶端。它使編寫web服務(wù)客戶機(jī)變得更容易,本質(zhì)上就是一個(gè)http,內(nèi)部進(jìn)行了封裝而已。

GitHub地址:https://github.com/OpenFeign/feign

官方文檔:https://cloud.spring.io/spring-cloud-static/spring-cloud-openfeign/2.1.0.RC2/single/spring-cloud-openfeign.html

服務(wù)提供者

提供者除了要在注冊(cè)中心注冊(cè)之外,不需要引入其他東西,注意一下幾點(diǎn)即可:

1、如果使用對(duì)象接參,必須使用@RequestBody,否則接不到數(shù)據(jù)

2、接參只能出現(xiàn)一個(gè)復(fù)雜對(duì)象,例:public Result<List<UserVo>> list(@RequestBody UserVo entityVo) { ... }

3、提供者如果又要向其他消費(fèi)者提供服務(wù),又要向?yàn)g覽器提供服務(wù),建議保持原先的Controller,新建一個(gè)專門給消費(fèi)者的Controller

測(cè)試接口

@RestController
@RequestMapping("/user/")
public class UserController {

  @Autowired
  private UserService userService;
  @RequestMapping("list")
  public Result<List<UserVo>> list(@RequestBody UserVo entityVo) {
    return userService.list(entityVo);
  }

  @RequestMapping("get/{id}")
  public Result<UserVo> get(@PathVariable("id") Integer id) {
    return userService.get(id);
  }
}

服務(wù)消費(fèi)者

消費(fèi)者maven引入jar

  <!-- feign -->
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-openfeign</artifactId>
    </dependency>

配置文件

對(duì)日期的解析,消費(fèi)者要跟提供者一致,不然會(huì)報(bào)json解析錯(cuò)誤

#超時(shí)時(shí)間
feign.httpclient.connection-timeout=30000

#mvc接收參數(shù)時(shí)對(duì)日期進(jìn)行格式化
spring.mvc.date-format=yyyy-MM-dd HH:mm:ss
#jackson對(duì)響應(yīng)回去的日期參數(shù)進(jìn)行格式化
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=GMT+8

服務(wù)調(diào)用

1、springdatejpa 應(yīng)用名稱,是服務(wù)提供者在eureka注冊(cè)的名字,F(xiàn)eign會(huì)從注冊(cè)中心獲取實(shí)例

2、如果不想啟動(dòng)eureka服務(wù),直連本地開發(fā):@FeignClient(name = "springdatejpa", path = "/user/",url = "http://localhost:10086")

3、如果使用@RequestMapping,最好指定調(diào)用方式

4、消費(fèi)者的返回值必須與提供者的返回值一致,參數(shù)對(duì)象也要一致

更多@FeignClient注解參數(shù)配置,請(qǐng)參閱官方文檔

@FeignClient(name = "springdatejpa", path = "/user/")
public interface MyspringbootFeign {

  @RequestMapping(value = "get/{id}")
  Result<UserVo> get(@PathVariable("id") Integer id);

  @RequestMapping(value = "list", method = RequestMethod.GET)
  Result<List<UserVo>> list(@RequestBody UserVo entityVo);
}
/**
   * feign調(diào)用
   */
  @GetMapping("feign/get/{id}")
  Result<UserVo> get(@PathVariable("id") Integer id){
    return myspringbootFeign.get(id);
  }


  /**
   * feign調(diào)用
   */
  @GetMapping("feign/list")
  Result<List<UserVo>> list(UserVo userVo){
    return myspringbootFeign.list(userVo);
  }

啟動(dòng)類

啟動(dòng)類加入注解:@EnableFeignClients

@EnableEurekaClient
@EnableFeignClients
@SpringBootApplication
public class MyspringbootApplication{

  public static void main(String[] args) {
    SpringApplication.run(MyspringbootApplication.class, args);
  }

}

效果

成功注冊(cè)兩個(gè)服務(wù)

成功調(diào)用

報(bào)錯(cuò)記錄

1、啟動(dòng)時(shí)報(bào)了個(gè)SQL錯(cuò)誤

解決:配置文件連接數(shù)據(jù)時(shí)指定serverTimezone=GMT%2B8

2、當(dāng)我將之前搭好的一個(gè)springboot-springdata-jpa整合項(xiàng)目在eureka注冊(cè)時(shí)出現(xiàn)了一個(gè)報(bào)錯(cuò)

然后在網(wǎng)上查了下說是因?yàn)閟pringboot版本問題,之前這個(gè)項(xiàng)目用的是2.0.1.RELEASE,現(xiàn)在要在eureka注冊(cè),pom引入了就出現(xiàn)了上面的報(bào)錯(cuò)

<!-- eureka-client -->
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>

    <!-- actuator -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
<dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-dependencies</artifactId>
        <version>Greenwich.RC1</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>
  <repositories>
    <repository>
      <id>spring-milestones</id>
      <name>Spring Milestones</name>
      <url>https://repo.spring.io/milestone</url>
    </repository>
  </repositories>

解決:升級(jí)了springboot版本,2.1.0,項(xiàng)目正常啟動(dòng)

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.0.RELEASE</version>
    <!--<version>2.0.1.RELEASE</version>-->
    <relativePath/> <!-- lookup parent from repository -->
  </parent>

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java for循環(huán)幾種寫法整理

    Java for循環(huán)幾種寫法整理

    這篇文章主要介紹了Java for循環(huán)幾種寫法整理的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • SpringBoot中多環(huán)境配置和@Profile注解示例詳解

    SpringBoot中多環(huán)境配置和@Profile注解示例詳解

    這篇文章主要介紹了SpringBoot中多環(huán)境配置和@Profile注解,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-01-01
  • Spring的@Autowired加到接口上但獲取的是實(shí)現(xiàn)類的問題

    Spring的@Autowired加到接口上但獲取的是實(shí)現(xiàn)類的問題

    這篇文章主要介紹了Spring的@Autowired加到接口上但獲取的是實(shí)現(xiàn)類的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • Java調(diào)用wsdl接口的兩種方法(axis和wsimport)

    Java調(diào)用wsdl接口的兩種方法(axis和wsimport)

    本文主要介紹了Java調(diào)用wsdl接口的兩種方法(axis和wsimport),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Java IO文件編碼轉(zhuǎn)換實(shí)現(xiàn)代碼

    Java IO文件編碼轉(zhuǎn)換實(shí)現(xiàn)代碼

    這篇文章主要介紹了Java IO文件編碼轉(zhuǎn)換實(shí)現(xiàn)代碼,有需要的朋友可以參考一下
    2013-12-12
  • 使用maven打包生成doc文檔和打包源碼

    使用maven打包生成doc文檔和打包源碼

    這篇文章主要介紹了使用maven打包生成doc文檔和打包源碼的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • java中l(wèi)ambda(函數(shù)式編程)一行解決foreach循環(huán)問題

    java中l(wèi)ambda(函數(shù)式編程)一行解決foreach循環(huán)問題

    這篇文章主要介紹了java中l(wèi)ambda(函數(shù)式編程)一行解決foreach循環(huán)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Java 集合的Contains和Remove方法

    Java 集合的Contains和Remove方法

    這篇文章主要介紹了Java 集合Contains和Remove方法的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下
    2021-02-02
  • MybatisPlus #{param}和${param}的用法詳解

    MybatisPlus #{param}和${param}的用法詳解

    這篇文章主要介紹了MybatisPlus #{param}和${param}的用法詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • nacos-discovery包名層級(jí)問題解決

    nacos-discovery包名層級(jí)問題解決

    這篇文章主要為大家介紹了nacos-discovery包名層級(jí)問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07

最新評(píng)論

麻城市| 佳木斯市| 桐梓县| 南平市| 东台市| 启东市| 从化市| 十堰市| 东安县| 泌阳县| 六枝特区| 胶南市| 凤翔县| 元阳县| 云浮市| 济南市| 宁海县| 肇源县| 张家口市| 姚安县| 雷山县| 乌兰县| 潼关县| 商都县| 平利县| 兴隆县| 晋宁县| 沈丘县| 阳曲县| 菏泽市| 伊春市| 三都| 广河县| 长兴县| 瑞丽市| 呼伦贝尔市| 曲沃县| 凌云县| 和静县| 惠东县| 台北县|