跳到主要内容

写一个微服务接口

Version: 2.5+

本示例以服务jeecg-system调用服务jeecg-demo为例讲解feign调用

一. jeecg-demo中编写服务接口

编写接口

public interface JeecgDemoService {
Result<String> getMessage(String name);
}

编写实现类

@Service
public class JeecgDemoServiceImpl implements JeecgDemoService {
@Override
public Result<String> getMessage(String name) {
return Result.OK("Hello" + name);
}
}

编写服务接口

@RestController
@RequestMapping("/test")
public class JeecgDemoProvider {

@Resource
private JeecgDemoService jeecgDemoService;

@GetMapping("/getMessage")
public Result<String> getMessage(@RequestParam String name) {
return jeecgDemoService.getMessage(name);
}
}

二. jeecg-system中编写feign客户端接口

  1. 启动类加上 @EnableFeignClients 注解。

  1. 编写feign客户端
//jeecg-boot-module-demo模块的服务名是 jeecg-demo
@FeignClient(value = CloudConstant.SERVER_NAME_JEECGDEMO, configuration = FeignConfig.class,fallbackFactory = JeecgTestClientFactory.class)
@Component
public interface JeecgTestClient {
@GetMapping(value = "/test/getMessage")
Result<String> getMessage(@RequestParam(value = "name",required = false) String name);
}
  1. 编写测试方法
@RestController
@RequestMapping("/sys/test")
@Api(tags = "feign测试")
public class JeecgTestFeignTest {

//注入feign客户端
@Autowired
private JeecgTestClient jeecgTestClient;

@GetMapping("getMessage")
@ApiOperation(value = "测试feign", notes = "测试feign")
public Result<String> getMessage() {
return jeecgTestClient.getMessage("jeecg-boot");
}
}