@FeignClient 接口调用
在項目的啟動文件加入:@EnableFeignClients 注解,
|   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17  |   import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.EnableEurekaClient; import org.springframework.cloud.netflix.feign.EnableFeignClients; import org.springframework.context.annotation.Bean; import org.springframework.web.client.RestTemplate; @EnableEurekaClient @SpringBootApplication @EnableFeignClients public?class?FeignApp { ????public?static?void?main(String[] args) { ????????SpringApplication.run(FeignApp.class, args); ????} }  | 
實例結構如下:
那么有實體類: User.java
Fengn客戶端:UserFeignClient.java
控制器: MovieController.java調取第三方user接口
User.java
|   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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59  |   import java.math.BigDecimal; public?class?User { ????private??Long id; ????? ????private?String username; ????? ????private?String name; ????? ????private?int?age; ????? ????private?BigDecimal balance; ????public?Long getId() { ????????return?id; ????} ????public?void?setId(Long id) { ????????this.id = id; ????} ????public?String getUsername() { ????????return?username; ????} ????public?void?setUsername(String username) { ????????this.username = username; ????} ????public?String getName() { ????????return?name; ????} ????public?void?setName(String name) { ????????this.name = name; ????} ????public?int?getAge() { ????????return?age; ????} ????public?void?setAge(int?age) { ????????this.age = age; ????} ????public?BigDecimal getBalance() { ????????return?balance; ????} ????public?void?setBalance(BigDecimal balance) { ????????this.balance = balance; ????} ????? ????? ????? ????? ????? }  | 
UserFeign客戶端
其中:@FeignClient("spring-boot-user"): spring-boot-user是eureka服務里面user項目的名稱,加入此注解,能直接連接user項目接口
|   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18  |   import org.springframework.cloud.netflix.feign.FeignClient; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import com.muyang.bootmovie.entity.User; @FeignClient("spring-boot-user") public?interface?UserFeignClient { ????// 兩個坑:1. @GetMapping不支持?? 2. @PathVariable得設置value ????@RequestMapping(value="/simple/{id}", method=RequestMethod.GET) ????public?User findById(@PathVariable("id") Long id); ????? ????@RequestMapping(value="/test", method=RequestMethod.POST) ????public?User postUser(@RequestBody User user); }  | 
MovieController控制中心,調取UserFeign客戶端
|   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  |   import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import com.muyang.bootmovie.entity.User; import com.muyang.bootmovie.feign.UserFeignClient; @RestController public?class?MovieController { ????@Autowired ????private?UserFeignClient userFeignClient; ????? ????@GetMapping("/movie/{id}") ????public?User findById(@PathVariable("id") Long id) { ????????return?this.userFeignClient.findById(id); ????} ????? ????@RequestMapping(value="/test", method=RequestMethod.GET) ????public?User userPost(User user) ????{ ????????return?this.userFeignClient.postUser(user); ????????? ????} }  | 
?
總結
以上是生活随笔為你收集整理的@FeignClient 接口调用的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 通俗理解生成对抗网络GAN
 - 下一篇: 数据库连接数过多 too many