当前位置: 首页 > news >正文

微服务多模块构建feign项目过程与一些报错(2025详细版)

目录

1.eureka-server的注意事项

2.eureka-feign的注意事项

3.多模块构建feign项目过程

3.1创建父项目

3.2创建子项目eureka-server

3.3创建子项目eureka-provider

3.4创建子项目eureka-feign

3.5运行

给个点赞谢谢


1.eureka-server的注意事项

        eureka-server的yml文件中的元素冒号后面要有空格

        instance后面最好有hostname然后才写localhost。可以解决无法识别$的阴间错误。

2.eureka-feign的注意事项

如果eureka-feign报以下错误

大概率是因为没有@SpringBootApplication的注解。加上就可以了。

3.多模块构建feign项目过程

3.1创建父项目

        父项目的主要作用是为了统一子模块的pom依赖。然后就没什么用了。

        创建一个maven项目作为父项目。

        导入公用的pom文件,根据大家的版本自行调整。我这里导入的是eureka-server的pom文件,因为provider和feign的pom都是在eureka-server的pom的基础上添加了一些依赖

        这里因为要用子模块,所以要添加依赖标签<modules>,就是下面图片中带注释的部分,是表明父项目的子模块有那些。这里给出截图:

        初始为就行,当你添加一个子模块就会自动添加

<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><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.18</version><relativePath/></parent><groupId>com.itheima</groupId><artifactId>first</artifactId><version>0.0.1-SNAPSHOT</version><packaging>pom</packaging><name>first</name><description>Demo project for Spring Boot</description><properties><java.version>17</java.version><spring-cloud.version>Greenwich.SR2</spring-cloud.version></properties><modules>
<!--        <module>eureka-server</module>-->
<!--        <module>eureka-provider</module>-->
<!--        <module>eureka-feign</module>--></modules><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId> spring-cloud-starter-netflix-eureka-server </artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>2021.0.8</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>

3.2创建子项目eureka-server

选择新建选择模块。创建eureka-server

因为父项目的pom就是eureka-server的pom因此我们不用管eureka-server的pom文件。

然后创建yml和EurekaServerApplication

server:port: 7001
spring:application:name: eureka-server       //解决无法解析$问题
eureka:instance:hostname: localhostclient:fetch-registry: falseregister-with-eureka: falseservice-url:defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
package com.itheima;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {public static void main(String[] args) {SpringApplication.run(EurekaServerApplication.class, args);}}

3.3创建子项目eureka-provider

        因为eureka-provider的pom比server多,我们要添加2个依赖。添加的依赖不可以和父项目重合(个人认为,因为报错了)。就比如父项目中有:

那么子项目中好像不能用下图,因为我报错了,你们可以试试。

初始为下图:

更改:

<?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"><modelVersion>4.0.0</modelVersion><parent><groupId>com.itheima</groupId><artifactId>first</artifactId><version>0.0.1-SNAPSHOT</version></parent><artifactId>eureka-provider</artifactId><dependencies><!--        <dependency>--><!--            <groupId>org.springframework.cloud</groupId>--><!--            <artifactId> spring-cloud-starter-netflix-eureka-client </artifactId>--><!--        </dependency>--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>2.1.7.RELEASE</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><version>2.1.7.RELEASE</version><scope>test</scope></dependency></dependencies></project>

这里补上yml

server:port: 7006
spring:application:name: eureka-provider
eureka:client:service-url:defaultZone: http://localhost:7001/eureka/instance:hostname: localhost

EurekaProviderApplication

package com.itheima;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;@SpringBootApplication
@EnableEurekaClient
@EnableDiscoveryClient
public class EurekaProviderApplication {public static void main(String[] args) {SpringApplication.run(EurekaProviderApplication.class, args);}}

controll...........这里省略

3.4创建子项目eureka-feign

修改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 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>com.itheima</groupId><artifactId>first</artifactId><version>0.0.1-SNAPSHOT</version></parent><artifactId>eureka-feign</artifactId><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><version>2.1.7.RELEASE</version><scope>test</scope></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>2.1.7.RELEASE</version></dependency></dependencies></project>

编写yml,Application,server,controll..........省略。

3.5运行

点击左下角服务,右键Spring Boot就可以挨个运行了。

点击端口号即可跳转。

给个点赞谢谢


http://www.mrgr.cn/news/97909.html

相关文章:

  • 蓝桥杯 C/C++ 组历届真题合集速刷(一)
  • SmolVLM2: The Smollest Video Model Ever(三)
  • 【数据结构 · 初阶】- 单链表
  • mysql-锁的算法(记录锁、间隙锁、临键锁)
  • LeetCode算法题(Go语言实现)_38
  • Spring事务系列 三
  • 44、Spring Boot 详细讲义(一)
  • wsl2+ubuntu22.04安装blender教程(详细教程)
  • 解决 vite.config.ts 引入scss 预处理报错
  • Adaptive AUTOSAR 状态管理和转换——ActionItemList
  • 【C++游戏引擎开发】第13篇:光照模型与Phong基础实现
  • 1200 模拟量输入输出功能
  • python调用本地部署的大模型(llama3.2)
  • Vue3 + TypeScript 的 Hooks 实用示例
  • XTG900P可编程网关在焦化厂数据采集的应用
  • 编译freecad
  • xHCI 上 USB 读写分析
  • openharmony—release—4.1开源鸿蒙源码编译踩坑记录
  • Backtrader从0到1——第一个回测策略
  • ubuntu20.04在mid360部署direct_lidar_odometry(DLO)