Feign二: @FeignClient 接口调用
在项目的启动文件加入:@EnableFeignClients 注解,
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@EnableFeignClientspublic class FeignApp { public static void main(String[] args) { SpringApplication.run(FeignApp.class, args); }}
实例结构如下:
那么有实体类: User.java
Fengn客户端:UserFeignClient.java
控制器: MovieController.java调取第三方user接口
User.java
import java.math.BigDecimal;public class User { private Long id; private String useame; private String name; private int age; private BigDecimal balance; public Long getId() { retu id; } public void setId(Long id) { this.id = id; } public String getUseame() { retu useame; } public void setUseame(String useame) { this.useame = useame; } public String getName() { retu name; } public void setName(String name) { this.name = name; } public int getAge() { retu age; } public void setAge(int age) { this.age = age; } public BigDecimal getBalance() { retu balance; } public void setBalance(BigDecimal balance) { this.balance = balance; } }
UserFeign客户端
其中:@FeignClient("spring-boot-user"): spring-boot-user是eureka服务里面user项目的名称,加入此注解,能直接连接user项目接口
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客户端
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;@RestControllerpublic class MovieController { @Autowired private UserFeignClient userFeignClient; @GetMapping("/movie/{id}") public User findById(@PathVariable("id") Long id) { retu this.userFeignClient.findById(id); } @RequestMapping(value="/test", method=RequestMethod.GET) public User userPost(User user) { retu this.userFeignClient.postUser(user); }}
作者:穆晟铭
来源链接:https://www.cnblogs.com/achengmu/p/9726691.html
版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。
2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。