hooyantsing's Blog

P10 Spring Cloud Alibaba 环境搭建

字数统计: 798阅读时长: 4 min
2022/06/15

视频源:小破站讲的最好SpringCloudAlibaba入门教程,保姆级教程通俗易懂

3. Spring Cloud Alibaba 环境搭建

1. 基于 Spring Boot 的父 maven 项目

打开 IDEA 创建一个 Spring Initializr 项目,Type 选择 Maven Project,再将 Packaging 选择 Pom (如果没有Pom选项,后面在 pom 文件里改成 pom 即可)。

image-20220616145021057

一路下一步。项目创建好后,打开 pom 文件,加入以下代码,让项目打包时不用打包成 jar 包。

1
<packaging>pom</packaging>

2. 子 maven 项目

右键父项目 New Module,创建一个 Maven 项目。

image-20220616150358353

子项目是 web 项目,pom 加入 web 相关的依赖坐标。

1
2
3
4
5
6
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>

3. 创建两个服务并通信

image-20220616163921651

Order 服务

SpringBootApplication

1
2
3
4
5
6
7
8
9
10
11
12
13
14
@SpringBootApplication
public class OrderApplication {

public static void main(String[] args) {
SpringApplication.run(OrderApplication.class,args);
}

// 通常写在配置类里面
@Bean
public RestTemplate restTemplate(){
RestTemplate restTemplate = new RestTemplate();
return restTemplate;
}
}

Controller

1
2
3
4
5
6
7
8
9
10
11
12
13
14
@RestController
@RequestMapping("/order")
public class OrderController {

@Autowired
RestTemplate restTemplate;

@RequestMapping("/add")
public String add(){
System.out.println("下单成功");
String msg = restTemplate.getForObject("http://localhost:8011/stock/reduct", String.class);
return "hello world" + msg;
}
}

aplication.yaml

1
2
server:
port: 8010

Stock 服务

SpringBootApplication

1
2
3
4
5
6
7
@SpringBootApplication
public class StockApplication {

public static void main(String[] args) {
SpringApplication.run(StockApplication.class, args);
}
}

Controller

1
2
3
4
5
6
7
8
9
@RestController
@RequestMapping("/stock")
public class StockController {
@RequestMapping("/reduct")
public String reduct(){
System.out.println("扣减库存");
return "扣减库存";
}
}

aplication.yaml

1
2
server:
port: 8011
Run Dashboard / Service

方便管理各个服务。

image-20220616164205378

4. 引入 Spring Cloud Alibaba 相关组件

注意:一定要去查阅官方文档组件之间版本兼容性。

这里使用以下版本学习:

  • Spring Cloud Alibaba:2.2.5.RELEASE
  • Spring Boot:2.3.2.RELEASE
  • Spring Cloud:Hoxton.SR8

为父项目加入依赖坐标:

1
2
3
4
5
6
7
8
9
10
11
12
<dependencyManagement>
<!--spring cloud alibaba 版本管理-->
<dependencies>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.5.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

dependencyManagement 和 dependencies 区别:dependencyManagement 的依赖需要子类声明后才能使用,dependencies 的依赖子类可以直接使用。

当然,可以将 <parent> 标签内的依赖坐标加入其中,这样就能释放 parent 标签了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<dependencyManagement>
<dependencies>
<!--spring cloud alibaba 版本管理-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.5.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--spring boot 版本管理-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.11</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--spring cloud 版本管理-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Hoxton.SR8</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

5. IDEA 集成阿里云快速初始化向导

阿里云提供的快速初始化向导:https://start.aliyun.com/bootstrap.html

image-20220616193822836

CATALOG
  1. 1. 3. Spring Cloud Alibaba 环境搭建
    1. 1.1. 1. 基于 Spring Boot 的父 maven 项目
    2. 1.2. 2. 子 maven 项目
    3. 1.3. 3. 创建两个服务并通信
      1. 1.3.1. Run Dashboard / Service
    4. 1.4. 4. 引入 Spring Cloud Alibaba 相关组件
    5. 1.5. 5. IDEA 集成阿里云快速初始化向导