A:装います
作成FeignClientクライアント
@FeignClient(名前= "製品")// www.1b23.com パブリックインターフェースIProductClient { @GetMapping( "/ MSG") ストリングproductMessage()。 @PostMapping( "/製品/ listForOrder") 一覧<ProductInfo> productInfoList(@RequestBody一覧<文字列> productIdList); @PostMapping( "/製品/ decreaseStock") 空decreaseStock(一覧<CartDto> cartDtoList); }
@FeignClient(name = "product")
このインタフェースは、名前は、アプリケーション名を表し、装うはクライアントを表しています。@PostMapping("/product/listForOrder")
そして、通常の通話文言コントローラ層は、インターフェース呼び出しが書き込まれ、ここでのインタフェースが参照http://product//product/listForOrder
RestTemplate同じURL、およびコール。
使用FeignClientクライアント。
プラスクラスのスタートはFeignClientと呼ばれます
@EnableFeignClients
。他のクラスの注入では
IProductClient
インターフェース、直接呼び出さ。
@Autowired プライベートIProductClient productClient。 @GetMapping( "/ getProductMsg") パブリック文字列getProductMsg(){ ストリング応答= productClient.productMessage()。 log.info( "応答= {}"、応答); 応答を返します。 }
時々が見つからないことを注意が報告されますIProductClient
。このBeanを、あなたはスキャンパッケージ、呼び出す際にしばしば遭遇する問題を追加する必要があります。
@EnableFeignClients(basePackages = "com.springcloud.product.client")
2:リボン
あなたは装うコールより複雑な手順を参照してください、とパラメータを渡すと、多くの問題の後にすることができますzuul
リボンを見てください
クラスが実装するインターフェースの内部のみバランスリボンを導入し、その後、メソッド呼び出しがあってもよいです
/ ** * www.1b23.com * / @サービス @Transactional //開いているもの パブリッククラスUsersServiceImpl実装UsersService { @Autowired プライベートLoadBalancerClient loadBalancerClient; //リボンロードバランサ ...... / ** Saveユーザ * @Param PD * @throws例外 * / 公共ボイドsaveUser(InboundのPageDate PDは){例外をスロー usersMapper.saveUser(PD)。 pd.put( "tokenKey"、Tools.creatTokenKey( "useraddの")); LoadBalancerUtil.responseByPost(this.loadBalancerClient、 "FH-DBsyncを"、 "ユーザ追加/"、PD); //テーブル同期要求データベースmicroService } }
「FH-DBsyncを」が格納パラメータを使用マップは、ある「PD」に「追加/ユーザ」マイクロサービスへのフルパスをRequestMapping、eurakeの内部に登録されたサービス名