Feign客户端远程调用

2020-02-28  本文已影响0人  piziyang12138
<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
#开启feign客户端
@EnableFeignClients
@EnableDiscoveryClient
@SpringBootApplication
public class ServiceConsumerApplication {

    public static void main(String[] args) {
        SpringApplication.run(ServiceConsumerApplication.class, args);
    }
}
@FeignClient( value = "app-itmayiedu-member" )#value为注册中心中的serviceId
public interface MemberServiceFeign{

    @RequestMapping("/test")
    String consumer( @RequestParam("param") String param );
}
@RestController
public class OrderService implements IOrderService {

    @Autowired
    private MemberServiceFeign memberServiceFeign;

    @RequestMapping(value = "/orderToMember",method = RequestMethod.GET)
    public String orderToMember(String name) {
        User member = memberServiceFeign.getMember(name);
        return member == null ? null : member.toString();
    }
}

到此feign可以正常调用,但是有少许冗余。

public interface IMemberService {

    @RequestMapping("/getMember")
    public User getMember(@RequestParam("name") String name);
}

方法实现

@RestController
public class MemberService implements IMemberService {

    @RequestMapping("/getMember")
    public User getMember(@RequestParam("name") String name) {
        User user = new User();
        user.setName(name);
        user.setUserAge(12);
        return user;
    }
}

消费者:
Feign客户端改造

@FeignClient(value = "app-itmayiedu-member")
public interface MemberServiceFeign extends IMemberService {
}

调用方法不变

public class OrderService implements IOrderService {

    @Autowired
    private MemberServiceFeign memberServiceFeign;

    @RequestMapping(value = "/orderToMember",method = RequestMethod.GET)
    public String orderToMember(String name) {
        User member = memberServiceFeign.getMember(name);
        return member == null ? null : member.toString();
    }
}
上一篇 下一篇

猜你喜欢

热点阅读