Spring Cloud-超详细讲解Rest环境搭建

Spring Cloud-超详细讲解Rest环境搭建,第1张

Spring Cloud-超详细讲解Rest环境搭建

目录

前言

1、数据库准备

2、创建Maven父项目,并编写pom.xml

3、建立子Module

4、配置springcloud-api

5、配置springcloud-provider-blog-8001

4、配置springcloud-consumer-blog-80

5、测试REST搭建环境

6、复盘全局

小结


【一心同学】正在参加【博客之星】

希望各位大佬能够投【五星】⭐ ⭐ ⭐ ⭐ ⭐给予【一心同学】,每一份投票都是【一心同学】的动力。

【一心同学】投票专区入口:https://bbs.csdn.net/topics/603956556 

想要学到更多后端知识,欢迎关注【一心同学】

❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️ 


前言

我们知道Spring Cloud是基于HTTP的REST方式调用的,然而听概念只是感觉很抽象,本篇博客将由【一心同学】带领大家进行基于Spring Clou的Rest环境的搭建,更加了解Spring Cloud的特性。

1、数据库准备

CREATE DATAbase mydb1;

USE mydb1;

DROP TABLE IF EXISTS `blog`;

CREATE TABLE `blog` (
 `id` int NOT NULL AUTO_INCREMENT,
 `name` varchar(20) DEFAULT NULL,
 `db_source` varchar(20) DEFAULT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

insert into `blog`(`id`,`name`,`db_source`) values (1,'一心同学','mydb1'),(2,'张三','mydb1');

2、创建Maven父项目,并编写pom.xml

(1)配置打包方式 

pom

(2)版本号和依赖管理

 
 UTF-8
 1.8
 1.8
 4.13.2
 1.2.17
 1.18.20
 


 
 

 
 
 org.springframework.cloud
 spring-cloud-alibaba-dependencies
 0.2.0.RELEASE
 pom
 import
 


 
 
 org.springframework.cloud
 spring-cloud-dependencies
 Hoxton.SR12
 pom
 import
 

 
 
 org.springframework.boot
 spring-boot-dependencies
 2.3.12.RELEASE
 pom
 import
 

 
 
 mysql
 mysql-connector-java
 8.0.25
 

 
 com.alibaba
 druid
 1.1.10
 

 
 
 
 org.mybatis.spring.boot
 mybatis-spring-boot-starter
 1.3.2
 

 
 
 ch.qos.logback
 logback-core
 1.2.3
 

 
 junit
 junit
 ${junit.version}
 
 

 log4j
 log4j
 ${log4j.version}
 

 
 org.projectlombok
 lombok
 ${lombok.version}
 

 

 

(3)注意事项

spring-cloud-dependencies这个依赖的版本要与Spring Boot的版本相对应!

步骤一:进入Spring Cloud官网:Spring Cloud

步骤二:点击LEARN,并选择相应的Spring Cloud依赖

步骤三:进入 Reference Doc.

可以发现我选的这个Spring Cloud依赖是:Hoxtom.SR12,其对应的Spring Boot版本需要2.3.12.RELEASE及以上的。

(4) 完整的父项目pom配置文件




 4.0.0
 org.yixin
 SpringCloud
 1.0-SNAPSHOT

 
 pom

 
 
 UTF-8
 1.8
 1.8
 4.13.2
 1.2.17
 1.18.20
 

 
 
 

 
 org.springframework.cloud
 spring-cloud-alibaba-dependencies
 0.2.0.RELEASE
 pom
 import
 

 
 
 org.springframework.cloud
 spring-cloud-dependencies
 Hoxton.SR12
 pom
 import
 

 
 
 org.springframework.boot
 spring-boot-dependencies
 2.3.12.RELEASE
 pom
 import
 

 
 
 mysql
 mysql-connector-java
 8.0.25
 

 
 com.alibaba
 druid
 1.1.10
 

 
 
 
 org.mybatis.spring.boot
 mybatis-spring-boot-starter
 1.3.2
 

 
 
 ch.qos.logback
 logback-core
 1.2.3
 


 
 junit
 junit
 ${junit.version}
 


 
 log4j
 log4j
 ${log4j.version}
 


 
 org.projectlombok
 lombok
 ${lombok.version}
 

 
 

3、建立子Module

注:同样以Maven形式创建。

(1)添加Module

(2)  建立三个Maven子项目,目录如下

4、配置springcloud-api

我们把实体类放在springcloud-api中。

(1)导入依赖

可以发现,由于父项目中以及管理了lombok这个jar包指定了版本号,所以我们这里无需再指定版本号了。


 org.projectlombok
 lombok

(2)建立以下目录

(3)编写实体类Blog

package com.yixin.springcloud.pojo;

import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;

@Data
@NoArgsConstructor
//所有的实体类必须实现序列化接口
public class Blog implements Serializable {

 private Integer id;
 private String name;
 private String db_source;//这个数据是存在哪个数据库的字段
 //微服务架构:一个服务对应一个数据库,也就是说同一个信息会存到不同的数据库,因此需要 db_source 进行区分
}

5、配置springcloud-provider-blog-8001

springcloud-provider-blog-8001:是我们的服务提供方。

(1)导入依赖



 
 
 org.yixin
 springcloud-api
 1.0-SNAPSHOT
 
 
 junit
 junit
 test
 

 
 
 mysql
 mysql-connector-java
 

 
 com.alibaba
 druid
 

 
 ch.qos.logback
 logback-core
 

 
 org.mybatis.spring.boot
 mybatis-spring-boot-starter
 

 
 
 org.springframework.boot
 spring-boot-test
 2.4.5
 

 
 
 org.springframework.boot
 spring-boot-starter-web
 2.4.5
 

 
 org.springframework.boot
 spring-boot-starter-jetty
 2.5.2
 
 
 
 org.springframework.boot
 spring-boot-devtools
 2.4.5
 
 

(2)建立以下目录

(3)编写BlogDao接口

package com.yixin.springcloud.dao;

import com.yixin.springcloud.pojo.Blog;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
import java.util.List;

@Mapper
@Repository
public interface BlogDao {

 boolean addBlog(Blog blog);
 Blog queryById(Integer id);//根据id查找Blog
 List queryAll();

}

(4)编写application.yml

我们将其端口号设置为:8001

server:
  port: 8001
mybatis:
  type-aliases-package: com.yixin.springcloud.pojo
  config-location: classpath:mybatis/mybatis-config.xml
  mapper-locations: classpath:mybatis/mapper
 private static final String REST_URL_PREFIX="http://localhost:8001";


 
 @GetMapping("/consumer/blog/get/{id}")
 public Blog get(@PathVariable Integer id){
 // getForObject(服务提供方地址(接口),返回类型.class)
 return restTemplate.getForObject(REST_URL_PREFIX +"/blog/get/"+id, Blog.class);
 }


 
 @PostMapping("/consumer/blog/add")
 public boolean add(Blog blog){
 // postForObject(服务提供方地址(接口),参数实体,返回类型.class)
 return restTemplate.postForObject(REST_URL_PREFIX +"blog/add",blog,Boolean.class);
 }


 
 @GetMapping("/consumer/blog/list")
 public List list(){
 return restTemplate.getForObject(REST_URL_PREFIX +"/blog/list", List.class);
 }

}

(6)编写Spring  Boot启动类BlogConsumer_80

package com.yixin.springcloud;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class BlogConsumer_80 {

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

5、测试REST搭建环境

依次启动Spring Boot:

BlogProvider_8001-------->BlogConsumer_80

测试:

访问:http://localhost:8000/consumer/blog/list

注意:我们是以消费方的角度去访问的,我们设置消费方的端口是:8000。

结果:

测试成功!

6、复盘全局

进行到这一步,我们基于Spring Cloud的REST环境搭建就已经成功了!我们来看下各个子项目分别都执行了什么功能。

springcloud-api:负责实体类的存放

springcloud-provider-blog-8001:服务提供方,负责与数据库进行交互,dao层和service层都在这个子项目中。

springcloud-consumer-blog-80:消费方,只需负责对请求的调用。

服务方与消费方之间通过RestTemplate进行调用。


小结

以上就是【一心同学】对Spring Cloud中Rest环境搭建的详细讲解了,我们再回顾这么【一句话】:Spring Cloud是基于HTTP的REST方式调用的。对这句话是不是就理解得更加深刻了。

【一心同学】在博客中的讲解喜欢用通俗易懂的文笔去讲明白一个知识点,而不喜欢用那种高大上的官方文笔来进行陈述,如果你对后端知识感兴趣,欢迎关注❤️❤️❤️【一心同学】❤️❤️❤️ 。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5691664.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存