原文链接: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>
<module>producer-1</module>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.13</version>
<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>
<java.version>1.8</java.version>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>2021.0.5</version>
<!--spring cloud alibaba依赖 -->
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2021.0.5.0</version>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
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">
<artifactId>s-cloud-alibaba</artifactId>
<groupId>site.longkui</groupId>
<version>0.0.1-SNAPSHOT</version>
<modelVersion>4.0.0</modelVersion>
<artifactId>producer-1</artifactId>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
我们在resources中创建配置文件application.yml,初始内容如下:
name: service-producer #服务的名称
然后我们创建启动类
![]()
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.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;
public class userController {
public String getUser() {
return "I`m producer 1 ,return user";
![]()
我们启动生产者,测试一下接口:
http://localhost:8010/user/getUser
![]()
3.创建消费者
创建完了生产者的微服务,我们再来创建一个消费者的微服务。创建消费者的过程和生产者类似,我们假设端口是9010,命名为consumer-1。
我们在resources创建application.yml
name: service-consumer #服务的名称
然后创建启动类:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.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;
public class applicationRestTemplate {
* 注册RestTemplate对象到Spring容器
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;
@RequestMapping("/consumer")
public class consumerController {
private RestTemplate restTemplate;
String url="http://localhost:8010/user/getUser";
return restTemplate.getForObject(url, String.class);
![]()
然后测试消费者访问生产者:
http://localhost:9010/consumer/getUser
![]()
可以看到,消费者调用生产者成功,返回生产者的数据。