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