1、环境准备
spring boot 1.5.12.Release
spring cloud Dalston SR5
eclipse 2018.12
2、在pom文件中引入feign的依赖,不同版本的cloud的依赖版本可能不同
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.scau</groupId>
<artifactId>spring-cloud-demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>spring-cloud-eureka-feign-consumer</artifactId>
<name>spring-cloud-eureka-feign-consumer</name>
<dependencies>
<!-- feign依赖 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
</dependencies>
</project>
3、在application.yml中配置eureka服务的注册地址
spring:
application:
name: eureka-feign-consumer
server.port: 8088
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka
instance:
prefer-ip-address: true
instance-id: eureka-feign-consumer.com
4、在主启动类中使用@EnableFeignClients注解,启用feign
@EnableFeignClients
@EnableEurekaClient
@SpringBootApplication
public class FeignConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(FeignConsumerApplication.class, args);
}
}
5、编写Service接口,并在接口上使用@FeignClient(value="要调用的在eureka注册的服务的名字")
@FeignClient(value="eureka-provider")
public interface UserService {
@RequestMapping(value="/user/selectUserByName/{name}",method=RequestMethod.GET)
public User selectUserByName(@PathVariable("name")String name);
}
6、将Service注入到controller中,并在controller中调用service
@RestController
public class UserController {
@Autowired
private UserService userService;
@RequestMapping(value="/get/{name}")
public User get(@PathVariable("name")String name) {
User user = userService.selectUserByName(name);
return user;
}
}
访问浏览器进行测试即可
PS:这里省略了服务注册中心(eureka server)与服务提供者(eureka client)的配置,请在使用feign之前配置好