《springcloudalibaba》一Openfeign
- 电脑硬件
- 2025-08-03 19:21:02

准备
创建三个项目
父项目pom <?xml version="1.0" encoding="UTF-8"?> <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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <modules> <module>order</module> <module>stock</module> </modules> <groupId>com.cxy.springcloud</groupId> <artifactId>springcloudalibaba</artifactId> <version>0.0.1-SNAPSHOT</version> <name>springcloudalibaba</name> <description>springcloud alibaba</description> <packaging>pom</packaging> <properties> <java.version>1.8</java.version> <springboot.version>2.3.11.RELEASE</springboot.version> <springcloud.version>Hoxton.SR8</springcloud.version> <sprigncloud.alibaba.version>2.2.5.RELEASE</sprigncloud.alibaba.version> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.source>1.8</maven.compiler.source> </properties> <dependencyManagement> <dependencies> <!-- springboot版本依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>${springboot.version}</version> <type>pom</type> <scope>import</scope> </dependency> <!-- springcloud版本依赖--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Hoxton.SR8</version> <type>pom</type> <scope>import</scope> </dependency> <!-- springcloudalibaba版本依赖--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>${sprigncloud.alibaba.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project> 有可能项目报错,可以忽略,只要启动不报错就行 order项目 pom.xml <?xml version="1.0" encoding="UTF-8"?> <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"> <parent> <artifactId>springcloudalibaba</artifactId> <groupId>com.cxy.springcloud</groupId> <version>0.0.1-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>order</artifactId> <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--Nacos做配置中心--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <!--添加openfeign依赖--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-loadbalancer</artifactId> </dependency> </dependencies> </project> 注意,只是引入openfeign的包还不够,会包一个错误,需要引入loadbalancer的包 yml server: port: 8015 spring: application: name: order-service cloud: nacos: server-addr: 127.0.0.1:8848 discovery: name: nacos password: nacos namespace: public loadbalancer: ribbon: enabled: false ####设置springboot级别 logging: level: com.cxy.order.feign.StockFeignService: debug feign: client: config: stock-servic: ###对应微服务 ###链接超时时间 默认2s connectTimeout: 5000 ### 请求处理超时时间 默认5s readTimeout: 10000 8848是nacos配置端口logging.level是查看openFeign日志显示的connectTimeout 是openFeign的超时时长注意,openFeign,谁是消费端,就在哪里配置 controller package com.cxy.order.controller; import com.cxy.order.feign.StockFeignService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.RestTemplate; import java.io.File; import java.util.List; /** * @author wu * @version 1.0 * @date 2024/2/2 11:39 */ @RestController @RequestMapping("/order") public class OrderController { @Autowired StockFeignService stockFeignService; @RequestMapping("/add") public String add(){ System.out.println("下单成功"); String msg = stockFeignService.reduct(); return "Hello Feign!"+msg; } } 启动类 package com.cxy.order; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.openfeign.EnableFeignClients; /** * @author wu * @version 1.0 * @date 2024/2/2 11:47 */ @SpringBootApplication @EnableFeignClients public class OrderApplication { public static void main(String[] args) { SpringApplication.run(OrderApplication.class,args); } } EnableFeignClients 开启OpenFeign需要的注解 OpenFeign日志 package com.cxy.order.config; import feign.Logger; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** * 全局配置 * @author wu * @version 1.0 * @date 2024/2/22 10:27 */ @Configuration public class FeignConfig { @Bean public Logger.Level feignLoggerLevel(){ return Logger.Level.FULL; } } 有几个级别,显示openFeign日志的 feign接口 package com.cxy.order.feign; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.RequestMapping; /** * @author wu * @version 1.0 * @date 2024/2/21 17:54 */ @FeignClient(name = "stock-service",path = "/stock") public interface StockFeignService { @RequestMapping("/reduct") String reduct(); } stock项目 pom.xml <?xml version="1.0" encoding="UTF-8"?> <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"> <parent> <artifactId>springcloudalibaba</artifactId> <groupId>com.cxy.springcloud</groupId> <version>0.0.1-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>stock</artifactId> <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--Nacos做配置中心--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> </dependencies> </project> yml配置 server: port: 8011 spring: application: name: stock-service cloud: nacos: server-addr: 127.0.0.1:8848 discovery: name: nacos password: nacos namespace: public 可以启动多个stock,模拟负载均衡,我这里是启动两个,8011和8012 controller package com.cxy.stock.controller; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * @author wu * @version 1.0 * @date 2024/2/2 11:39 */ @RestController @RequestMapping("/stock") public class StockController { @Value("${server.port}") private Integer port; @RequestMapping("/reduct") public String reduct(){ System.out.println("扣减库存!"); return "扣减库存"+port; } }输入http://localhost:8015/order/add,说明启动成功
前提,已启动nacos端《springcloudalibaba》一Openfeign由讯客互联电脑硬件栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“《springcloudalibaba》一Openfeign”
上一篇
ClickHouse快速上手
下一篇
深入理解指针(c语言)