spring cloud alibaba (0)基础环境搭建

原文链接:spring cloud alibaba (0)基础环境搭建 – 每天进步一点点

0.版本
JDK:1.8
Spring Boot:2.6.13
spring-cloud-dependencies:2021.0.5
spring-cloud-alibaba-dependencies:2021.0.5.0
1.父工程搭建

我们创建一个spring boot项目作为父工程(也可以单独创建一个module,再引入spring boot依赖)

参考下面内容,填写必要信息,然后点击下一步。

然后来到下一步,这个地方我们选择的spring boot 版本是2.7.16,你可以根据自己的需要选择版本,版本对应关系参考文章参考下面这篇文章:https://www.longkui.site/program/java/spring-cloud-alibaba/6051/

注意,此处可以先随便选个版本,后面在pom文件中修改。本文后面选用spring boot的版本已经换成2.6.13

然后一直点击下一步直到创建完毕。

如果出现下面这种情况,Project ‘org.springframework.boot.spring-boot-starter-parent:2.7.16-SNAPSHOT’not found,点击上面的链接解决。

然后开始添加必要的依赖,我们打开父工程的pom文件,删除一些暂时用不到的依赖,然后引入必要依赖。

在前面搭建spring cloud netflix过程中,我们每个module都引入了自己的依赖,这篇文章我们使用dependencyManagement来管理依赖。

参考如下:

<?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>
<packaging>pom</packaging>
<modules>
<module>producer-1</module>
</modules>
<!--父工程-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.13</version>
<relativePath/>
</parent>
 
<groupId>site.longkui</groupId>
<artifactId>s-cloud-alibaba</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>s-cloud-alibaba</name>
<description>spring cloud alibaba demo</description>
 
<!--依赖版本 -->
<properties>
<java.version>1.8</java.version>
</properties>
 
<dependencyManagement>
<dependencies>
<!--spring cloud 依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>2021.0.5</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--spring cloud alibaba依赖 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2021.0.5.0</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>
2.创建生产者

我们首先创建第一个微服务模块,生产者。端口为:8010

右击父模块,新建—>新模块

我们定义生产者的名称,假设是producer-1

我们打开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">
<parent>
<artifactId>s-cloud-alibaba</artifactId>
<groupId>site.longkui</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
 
<artifactId>producer-1</artifactId>
 
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
 
</project>

我们在resources中创建配置文件application.yml,初始内容如下:

server:
port: 8010 #服务的端口
#spring相关配置
spring:
application:
name: service-producer #服务的名称

然后我们创建启动类

package site.longkui;
 
 
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
 
@SpringBootApplication
public class producerApplication {
public static void main(String[] args) {
SpringApplication.run(producerApplication.class, args);
}
}

创建controller层,并编写一个默认接口

package site.longkui.controller;
 
 
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
 
@RestController
@RequestMapping("/user")
public class userController {
 
@GetMapping("/getUser")
public String getUser() {
return "I`m producer 1 ,return user";
}
}

我们启动生产者,测试一下接口:

http://localhost:8010/user/getUser

3.创建消费者

创建完了生产者的微服务,我们再来创建一个消费者的微服务。创建消费者的过程和生产者类似,我们假设端口是9010,命名为consumer-1。

我们在resources创建application.yml

server:
port: 9010 #服务的端口
#spring相关配置
spring:
application:
name: service-consumer #服务的名称

然后创建启动类:

package site.longkui;
 
 
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
 
@SpringBootApplication
public class consumerApplication {
public static void main(String[] args) {
SpringApplication.run(consumerApplication.class, args);
}
}

然后我们创建RestTemplate:

package site.longkui.config;
 
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;
 
@Configuration
public class applicationRestTemplate {
/**
* 注册RestTemplate对象到Spring容器
*/
@Bean
public RestTemplate getRestTemplate() {
return new RestTemplate();
}
}

然后我们创建controller,并设置访问生产者的地址

package site.longkui.controller;
 
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
 
 
@RestController
@RequestMapping("/consumer")
public class consumerController {
 
@Autowired
private RestTemplate restTemplate;
 
@GetMapping("/getUser")
public String getUser(){
//指出服务地址
String url="http://localhost:8010/user/getUser";
//返回值类型和我们的业务返回值一致
return restTemplate.getForObject(url, String.class);
}
}

然后测试消费者访问生产者:

http://localhost:9010/consumer/getUser

可以看到,消费者调用生产者成功,返回生产者的数据。

posted on 2025-03-13 20:53  longkui  阅读(197)  评论(0)    收藏  举报

导航