Spring Cloud @FeignClient verwenden

<一>:注解 @FeignClient(value = „whhim-wms“, contextId = „DeliveryOrderClient“)

Funktion : Nachdem Spring Cloud zum Erstellen verschiedener Mikrodienste verwendet wurde, kann der Dienst über @FeignClient andere Dienste in der Servicefarm verwenden und entdecken

Einführung in die Annotation @FeignClient:

1) Name : Geben Sie den Namen von FeignClient an. Wenn das Projekt Ribbon verwendet, wird das Namensattribut als Name des Mikrodienstes verwendet, der für die Diensterkennung verwendet wird.
Der Wert ist derselbe wie Name
2): contextId : Wenn der Sind die Namen gleich, liegt ein Konflikt vor. In diesem Fall können Sie contextId verwenden, um den Wert zu ermitteln. behandeln.

<2> Spring Cloud ruft auf und wird als Instanzdienstanbieter
bezeichnet

//name为服务提供者向注册中心注册的实例名
@FeignClient(name = "provider-service" )
public interface HelloFeignService {
    
    
    //地址为服务提供者对外暴露的地址
    @RequestMapping(value = "/hello" , method = RequestMethod.GET)
    String hello(@RequestParam("name") String name);
}

Rufen Sie den Dienstanbieter an

@RestController
public class IndexController {
    
    
    @Autowired private HelloFeignService feignService;
    @RequestMapping(value = "/hello" , method = RequestMethod.GET)
    public String hello(String name){
    
    
        return feignService.hello(name);
    }
}

Starten Sie die beiden oben genannten i-Projekte und besuchen Sie http://localhost:9700/hello?name=zy,
Fügen Sie hier eine Bildbeschreibung ein
Beispiel 2:

@FeignClient(value = "im-wms", contextId = "DeliveryOrderClient")
public interface DeliveryOrderClient {
    
    
@RequestMapping(value = "/im-wms/delivery-order-client/modifyTranPlan", method = RequestMethod.POST)
    RestResult<Boolean> modifyTranPlan(@RequestBody ModifyTranPlanRequest modifyTranPlanRequest);
    }
    //当注入DeliveryOrderClient,调用其modifyTranPlan方法则会走/im-wms/delivery-order-client/modifyTranPlan,此时在controller中书写此接口的service方法完成业务即可

<3>: Wenn Sie @Autowired private HelloFeignService feignService nicht kennen, können Sie es wie folgt über den Schnittstellennamen abrufen:

public interface FicoClient {
    
    
 @RequestMapping(value = "/im-fico/co/getCompanyCostList",method = RequestMethod.POST)
    RestResult<CompanyCostDto> getCompanyCostList(@RequestBody String companyCode);
    }

Wenn Sie FicoClient injizieren und seine Methode ficoClient.getCompanyCostList aufrufen, greifen Sie auf die Schnittstelle „/im-fico/co/getCompanyCostList“ zu, um die Rückgabedaten abzurufen.

Supongo que te gusta

Origin blog.csdn.net/qq_40579139/article/details/108973806
Recomendado
Clasificación