开始使用
为了多个不同的项目的相互调用, 接口类考虑写在api工程中,服务工程去实现。这样只要有需要调用某个接口直接调用公共的api工程即可
在提供服务的项目和api的工程都引入下面这个feign的jar包
api中新建service接口,并且在接口上加入feign的提供远程调用的注解
这些接口在服务提供的项目工程已经被实现
@RestController
public class DeptController
{
@Autowired
private DeptService service;
@Autowired
private DiscoveryClient client;
@RequestMapping(value = "/dept/add", method = RequestMethod.POST)
public boolean add(@RequestBody Dept dept)
{
return service.add(dept);
}
@RequestMapping(value = "/dept/get/{id}", method = RequestMethod.GET)
public Dept get(@PathVariable("id") Long id)
{
return service.get(id);
}
@RequestMapping(value = "/dept/list", method = RequestMethod.GET)
public List<Dept> list()
{
return service.list();
}
在消费者工程启动类加上@EnableFeignClients(不指定basePackages就默认扫描所有带有@feignClient注解的类)
,消费者工程加上这个注解代表这开启feign远程调用,才能根据api功能的接口调用到它的接口实现,实现对于api接口的面向接口编程。也就是说想调用其服务提供者的实现逻辑,首先在api中写好接口,通过调用接口间接的调用了服务提供的实现