zoukankan      html  css  js  c++  java
  • 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
    @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

    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项目接口

    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;
    
    @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);
    		
    	}
    }
    

      

  • 相关阅读:
    字符串匹配——KMP算法(C++)
    数论——Fibonacci数列(C++)
    数据结构——线段树之二(C++)
    数据结构——线段树之一(C++)
    最后的最后
    开始的开始
    10.25模拟 保留道路
    10.25模拟 列车调度
    10.25模拟 三角形
    洛谷 P1093 奖学金
  • 原文地址:https://www.cnblogs.com/achengmu/p/9726691.html
Copyright © 2011-2022 走看看