七天学会SpringCloud分布式微服务——02——第一个微服务项目
1、建立springboot项目
- 这里springboot版本号随便选,其他都不要选,后面重现选springboot版本号
2、修改spring-cloud的pom.xml文件
2.1 去掉无关内容
<url/><licenses><license/></licenses><developers><developer/></developers><scm><connection/><developerConnection/><tag/><url/></scm>
2.2 标明为父工程
增加
<packaging>pom</packaging>
2.3 springboot版本 3.2.0 + springcloud2023.0.3+springcloudalibaba2023.0.1.3
属性properties改为:
<properties><java.version>17</java.version><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><spring-cloud.version>2023.0.3</spring-cloud.version><spring-cloud-alibaba.version>2023.0.1.3</spring-cloud-alibaba.version></properties>
依赖管理声明版本为:
<dependencyManagement><dependencies><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>
去掉依赖引入,因为是父工程,在具体的子项目引入真正的依赖
去掉以下部分
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies>
完整的父工程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 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>3.2.0</version><relativePath/> <!-- lookup parent from repository --></parent><packaging>pom</packaging><!--这一部分改为自己的--><groupId>com.zhenbang</groupId><artifactId>spring-cloud</artifactId><version>0.0.1-SNAPSHOT</version><name>spring-cloud</name><description>spring-cloud</description><properties><java.version>17</java.version><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><spring-cloud.version>2023.0.3</spring-cloud.version><spring-cloud-alibaba.version>2023.0.1.3</spring-cloud-alibaba.version></properties><dependencyManagement><dependencies><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><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>
最终是这样的,删除无关文件
3、在spring-cloud项目中新建一个services模块
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.2.0</version><relativePath/> <!-- lookup parent from repository --></parent>
普通java就可以,不用选springboot,因为父工程已经已经是springboot项目了,子工程也是了,根本原因就是上面这段!!!
4、在services模块下的pom文件也要加上,因为它也不写具体代码
<packaging>pom</packaging>
可以删除services下的src
5 、在services模块下创建真正的具体微服务模块
在service-product这个具体微服务模块下的pom文件下引入真正的依赖包
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies>
6、修改service-product的微服务主函数
package com.zhenbang;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class ProductMainApplication {public static void main(String[] args) {SpringApplication.run(ProductMainApplication.class,args);}
}
7、配置yam文件
先在services pom文件下引入依赖
<dependencies><!-- Nacos服务发现 --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency></dependencies>
spring:application:name: service-productcloud:nacos:server-addr: 127.0.0.1:8848server:port: 9000
前提是安装Nacos,本地运行起来!!!