轉載請注明作者及出處:
作者:銀河架構師
原文鏈接:https://www.cnblogs.com/luas/p/12073156.html
1 創建父項目
以前文所述,以spring boot 2.1.7.RELEASE為基,spring cloud版本為Greenwich.SR2,spring cloud alibaba版本為2.1.0.RELEASE。后續均以此為版本參照,不再贅述。
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> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.7.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.luas.cloud</groupId> <artifactId>java-boot-parent-2.1</artifactId> <version>1.0.0-SNAPSHOT</version> <packaging>pom</packaging> <name>java-boot-parent-2.1</name> <description>Spring Cloud Learning, parent project by spring boot 2.1.x</description> <properties> <java.version>1.8</java.version> <hutool.version>4.6.13</hutool.version> <spring-cloud.version>Greenwich.SR2</spring-cloud.version> <spring-cloud-alibaba.version>2.1.0.RELEASE</spring-cloud-alibaba.version> </properties> <dependencies> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>${hutool.version}</version> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>${spring-cloud-alibaba.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> </project>
2 創建商品工程
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> <parent> <groupId>com.luas.cloud</groupId> <artifactId>java-boot-parent-2.1</artifactId> <version>1.0.0-SNAPSHOT</version> <relativePath>../../java-boot-parent-2.1</relativePath> </parent> <groupId>com.luas.cloud</groupId> <artifactId>xmall-product</artifactId> <version>1.0.0-SNAPSHOT</version> <name>xmall-product</name> <description>Spring Cloud Learning,nacos-client</description> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- nacos cloud --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
注意,父工程便是上一步創建的父項目,特別注意一下relativePath,不如特殊指定,需要將父工程deploy到maven私服,子工程才能正常引用。
application配置
注意,spring.application.name將作為xmall-product服務在nacos注冊后的服務名稱,該服務名稱非常重要,后續無論是通過feign調用,還是rest調用,均需要此名稱。
商品服務
啟動類
關於@EnableDiscoveryClient注解,此處並沒有添加,而服務依然能正常注冊到nacos。什么原因呢?看如下兩段代碼即可明了:
此3處重要邏輯,均不依賴於是否配置了開啟參數,所以會自動注冊並監聽。
Nacos服務列表
打開nacos控制台,發現訪問已然在列表中,注冊成功!
可以點擊詳情查看服務元數據
訪問
訪問http://localhost:8080/sku/1000000,得出現如下結果:
源碼
歡迎點贊
- github:https://gitee.com/xbd521/SpringCloudLearning
- gitee: https://github.com/liuminglei/SpringCloudLearning
微信搜索【銀河架構師】,發現更多精彩內容。
技術資料領取方法:關注公眾號,回復微服務,領取微服務相關電子書;回復MK精講,領取MK精講系列電子書;回復JAVA 進階,領取JAVA進階知識相關電子書;回復JAVA面試,領取JAVA面試相關電子書,回復JAVA WEB領取JAVA WEB相關電子書。