简单使用feign

feign是一款非常好用的,能直接把我们省去端口号的编写,


下面直接开始,需要有一定的SpringCloud的基础,不然可能看不明白,我这里很多都是关键步骤。敬请原谅。


首先我们需要引入feign的依赖




org.springframework.cloud
spring-cloud-starter-openfeign


 编写一个接口,加上FeiginClient注解,再写上路径,(这个路径是全局的路径)


简单使用feign_第1张图片

 


 然后在启动类上面添加@EnableFeignClients注解


简单使用feign_第2张图片

 

@SpringBootApplication
@EnableFeignClients
public class ServiceProviderApplication {

//8050端口
public static void main(String[] args) {
SpringApplication.run(ServiceProviderApplication.class, args);
}


@Bean
@LoadBalanced
public RestTemplate restTemplate(RestTemplateBuilder builder){
RestTemplate restTemplate=builder.build();
return restTemplate;
}

//设置随机端口
// @Bean
// public IRule rule(){
//
// return new RandomRule();
//
// }


}


接下来是controller的编写,大家可以对比一下使用feign与不使用feign的区别,还需要把远程接口注入


简单使用feign_第3张图片

 


@RestController
@RefreshScope
public class ProviderController {

    @Autowired
    RestTemplate restTemplate;

    @Autowired
    RemoteProviderService providerService;

//    @Value("${spring.datasource.username}")
//    private  String username;

    @RequestMapping("/getRemoteHello")
    public String hello() {
        System.out.println("下单成功我是8050端口我要去连接8060端口");

//        String forObject = restTemplate.getForObject("http://service-const/chd", String.class);

        String forObject =providerService.hello();//这是第二使用feign种方式

//        System.out.println("拿到名称了"+username);
        System.out.println("通信成功" + forObject);
        return "hello word" + forObject;
    }


}

 接下来是通信类的编写,只需要把路径位置写对就行了


简单使用feign_第4张图片

 


我们直接把两个模块都启动,然后网页上输入路径来验证,如下图就证明成功了,


简单使用feign_第5张图片

 


简单使用feign_第6张图片

 


这里已经通信成功了,使用feign是不是非常方便也很简单,希望能帮助各位小伙伴


你可能感兴趣的:(spring,java,spring,boot)