目錄
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就可以挨個運行了。
點擊端口號即可跳轉。