spring cloud-04-feign客户端调用

1.生产者暴露接口

@RestController
public class UserController {
    @Autowired
    private UserRepository userRepository;

    @GetMapping("/simple/{id}")
    public User findById(@PathVariable Long id) {
        return this.userRepository.findOne(id);
    }

    @PostMapping("/user")
    public User postUser(@RequestBody User user) {
        return user;
    }
}

2.消费者引入feign依赖

        
            org.springframework.cloud
            spring-cloud-starter-feign
        

3.消费者启动类添加注解

@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients
public class ConsumerApplication {
    public static void main(String[] args) {
        SpringApplication.run(ConsumerApplication.class, args);
    }
}

4.消费者feign接口

@FeignClient("feign-demo-provider")
public interface UserFeignClient {
    @RequestMapping(value = "/simple/{id}", method = RequestMethod.GET)
    User findById(@PathVariable("id") Long id);

    @RequestMapping(value = "/user", method = RequestMethod.POST)
    User postUser(@RequestBody User user);
}

注意:
不支持GetMapping和PostMapping

5.消费者controller

@RestController
public class MovieController {
    @Autowired
    private UserFeignClient userFeignClient;

    @GetMapping("/movie/{id}")
    public User findById(@PathVariable Long id) {
        return this.userFeignClient.findById(id);
    }

    @PostMapping("/testPost")
    public User testPost(@RequestBody User user) {
        return this.userFeignClient.postUser(user);
    }
}

代码地址:
https://github.com/wupz/spring-cloud-demo/tree/master/feign-demo

你可能感兴趣的:(spring cloud-04-feign客户端调用)