废话不多说了,直接上代码。

首先导入feign的依赖:

        <!-- 添加feign声明式webservice client -->
        <dependency>
           <groupId>org.springframework.cloud</groupId>
           <artifactId>spring-cloud-starter-feign</artifactId>
        </dependency>

主程序:

@SpringBootApplication
@EnableEurekaClient
//支持声明式webservice client
@EnableFeignClients
public class SpringCloudMovieApplication {
    public static void main(String[] args) {
        SpringApplication.run(SpringCloudMovieApplication.class, args);
    }
}

配置文件如下:

server.port=8892

spring.application.name=spring-cloud-feign

logging.level.root=info
logging.level.org.org.hibernate=info
logging.level.com.com.chukun=debug

eureka.client.serviceUrl.defaultZone=http://chukun:123456@localhost:8761/eureka/

eureka.instance.prefer-ip-address=true

eureka.instance.instance-id=${spring.application.name}:${spring.application.instance_id:${server.port}}

Feign客户端接口:

//name属性表示请求哪个微服务,这里请求的是用户微服务,name表示用户微服务的vip
@FeignClient(name="spring-cloud-user")
public interface IUserService {

    @RequestMapping(value="/user/{id}",method=RequestMethod.GET)//注意,这里不支持@GetMapping
    /**
     * @PathVariable("id")不这么写,会报如下错:PathVariable annotation was empty on param 0.
     * @param id
     * @return
     */
    public User  findUserById(@PathVariable("id") long id); 
}

Feign的基本配置就写好了,现在就可以启动eureka服务中心,与用户微服务,即可使用声明式webservice client Feign调用服务了。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐