一、SpringCloud版本
SpringCloud在2020.0.0版本之前,按照伦敦地铁站名称从A-Z来进行版本命名,自2020.0.0-M1开始,SpringCloud废除了这种命名方式,使用了日历化版本命名。
SpringCloud日历化命名规则: YYYY.MINOR.MICRO
- YYYY:表示4位年份
- MINOR:表示一个递增的数字,每年从-开始依次递增
- MICRO:表示版本号后缀
SpringCloud版本选择
- SpringCloud Hoxton.SR9
- SpringBoot 2.3.5.RELEASE
- SpringCloud Alibaba 2.2.1.RELEASE
- Java8
二、项目搭建
-
创建父工程
-
引入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> <groupId>org.example</groupId> <artifactId>project-cloud</artifactId> <version>1.0-SNAPSHOT</version> <!-- 打包方式,jar,war,pom表示这个项目不是一个完整的有代码的项目,而是一个只有pom文件的项目,来充当父项目 --> <packaging>pom</packaging> <description>统一依赖版本</description> <properties> <java.version>1.8</java.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <!-- 版本号 --> <spring.cloud-version>Hoxton.SR9</spring.cloud-version> <spring.boot-version>2.3.5.RELEASE</spring.boot-version> <spring.cloud.alibaba-version>2.2.1.RELEASE</spring.cloud.alibaba-version> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>${spring.boot-version}</version> <!-- 指定该依赖不是一个jar包依赖,而是一个pom文件。这个pom文件里面又包含了很多的依赖。 --> <type>pom</type> <!--把该依赖的pom文件里面的所有依赖导入到我当前项目中--> <scope>import</scope> </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> <!--父项目中引入依赖,所有子项目可以使用该依赖--> <dependencies> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> </dependencies> </project>
pom.xml文件中dependencyManagement和dependencies的区别
- dependencyManagement:指定依赖版本号,子项目想用这个依赖需要手动导入,但是导入时不需要定义版本号
- dependencies:指定依赖的jar包,子项目不用重新依赖,就可以默认使用该依赖
-
设置跳过单元测试
-
商品服务&订单服务创建
-
创建module
这个module会继承父项目
2. 引入spring-boot-starter-web依赖
-
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
-
创建入口类
@SpringBootApplication public class ProductApplication { public static void main(String[] args) { SpringApplication.run(ProductApplication.class,args); } }
-
创建测试Controller
@RestController() public class ProductController { @GetMapping("/product") public String getProduct(){ return "商品服务测试..."; } }
-
设置application配置文件
# 应用名称 spring.application.name= coding-product # 应用路径 server.servlet.context-path= /coding-product # 端口号 server.port=8080
-
启动项目访问
-
同样的方式创建订单服务coding-order
-
配置Run Dashboard
选中SpringBoot