package jnpf.consumers.controller; import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Operation; import jnpf.base.ActionResult; import jnpf.entity.ContractEntity; import jnpf.provider.example.ContractProvider; import jnpf.util.ServletUtil; import org.apache.dubbo.config.annotation.DubboReference; import org.apache.dubbo.rpc.RpcContext; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * @author JNPF开发平台组 * @version V3.1.0 * @copyright 引迈信息技术有限公司(https://www.jnpfsoft.com) * @date 2021-06-21 */ @RestController @Tag(description = "Contract", name = "Contract") @RequestMapping("/Consumers") public class DubboConsumersController { /** * 使用dubbo示例 */ @DubboReference private ContractProvider contractProvider; @Operation(summary = "使用dubbo调用,获取详情") @GetMapping("/{id}") public ActionResult consumers(@PathVariable("id") String id){ /** 不建议常规业务使用!!! */ /** 若有个别业务需要使用dubbo调用且携带token,使用隐式参数 */ //获取token String token = ServletUtil.getRequest().getHeader("Authorization"); //传递参数 K,V RpcContext.getContext().setAttachment("Authorization", token); ContractEntity entity = contractProvider.getInfo(id); return ActionResult.success(entity); } }