springmvc 集成eurek和feign的例子
时间: 2023-07-12 16:29:53 浏览: 87
好的,以下是一个简单的 Spring MVC 项目中集成 Eureka 和 Feign 的示例:
1. 引入依赖
首先,需要在项目的 pom.xml 文件中引入 Spring Cloud Eureka 和 Spring Cloud Feign 相关的依赖:
```xml
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
<version>2.2.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
<version>2.2.2.RELEASE</version>
</dependency>
```
2. 添加配置
接下来,需要在项目的配置文件中添加 Eureka Server 和 Feign Client 相关的配置:
```yaml
spring:
application:
name: sample-service # 应用程序名称,注册到 Eureka Server 中
cloud:
config:
uri: http://localhost:8888 # Config Server 的地址
profile: dev # 配置文件的环境
label: master # Git 仓库的分支
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/ # Eureka Server 的地址
feign:
client:
config:
default:
connectTimeout: 5000 # 连接超时时间
readTimeout: 5000 # 读取超时时间
```
这里假设 Config Server 的地址为 http://localhost:8888,Eureka Server 的地址为 http://localhost:8761/eureka/。
3. 创建 Feign Client
接下来,需要创建一个 Feign Client,用于访问另一个服务。这里以访问名为 `sample-service` 的服务为例:
```java
@FeignClient(name = "sample-service")
public interface SampleServiceClient {
@GetMapping("/foo")
String getFoo();
}
```
这里使用 `@FeignClient` 注解来创建一个 Feign Client,指定服务名为 `sample-service`。`getFoo` 方法用于访问服务中的 `/foo` 接口,返回值为字符串类型。
4. 注册服务
最后,在项目启动时,需要将应用程序注册到 Eureka Server 中:
```java
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
public class SampleApplication {
public static void main(String[] args) {
SpringApplication.run(SampleApplication.class, args);
}
}
```
这里使用 `@EnableDiscoveryClient` 注解来启用服务注册功能,使用 `@EnableFeignClients` 注解来启用 Feign Client 功能。
需要注意的是,为了能够动态刷新配置,还需要在 `SampleServiceClient` 类上添加 `@RefreshScope` 注解。这样,在配置发生变化时,可以通过调用 `/actuator/refresh` 接口来刷新配置。
阅读全文