feign整合nacos
创建两个项目,服务提供者service-offer和服务消费者service-consumer
一、service-offer的pom文件
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>2.2.5.RELEASE</version> </dependency>
启动类上添加两个注解 @EnableDiscoveryClient @EnableFeignClients
yml配置
server:
port: 8183
spring:
application:
name: service-offer
cloud:
nacos:
discovery:
server-addr: localhost:8848
提供一个API
@RestController public class HelloController { @RequestMapping("/hello") public String hello(){ return "hello world"; } }
服务提供者完成
二、创建服务消费者
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>2.2.5.RELEASE</version> <!-- 排除nacos中的ribbon依赖,否则会报错 --> <exclusions> <exclusion> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-ribbon</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-loadbalancer</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency>
启动类:添加注解
@EnableDiscoveryClient
@EnableFeignClients
yml配置
spring:
application:
name: service-consumer
cloud:
nacos:
discovery:
server-addr: localhost:8848
server:
port: 8184
创建feign接口
@FeignClient("service-offer")//填写配置的server name public interface ProvideClient { @RequestMapping("/hello") String hello(); }
并调用该接口
@RestController public class HelloController { @Autowired private ProvideClient provideClient; @RequestMapping("/helloWorld") public String hello(){ return provideClient.hello(); } }
调用成功,访问http://localhost:8848/nacos/index.html,用户名密码都是nacos,登录可查看服务状态
访问http://localhost:8184/helloWorld,访问成功
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律