目录
前言
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
想要学到更多后端知识,欢迎关注【一心同学】
❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️
前言
1、数据库准备我们知道Spring Cloud是基于HTTP的REST方式调用的,然而听概念只是感觉很抽象,本篇博客将由【一心同学】带领大家进行基于Spring Clou的Rest环境的搭建,更加了解Spring Cloud的特性。
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-dependencies0.2.0.RELEASE pom import org.springframework.cloud spring-cloud-dependenciesHoxton.SR12 pom import org.springframework.boot spring-boot-dependencies2.3.12.RELEASE pom import mysql mysql-connector-java8.0.25 com.alibaba druid1.1.10 org.mybatis.spring.boot mybatis-spring-boot-starter1.3.2 ch.qos.logback logback-core1.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配置文件
3、建立子Module4.0.0 org.yixin SpringCloud1.0-SNAPSHOT pom UTF-8 1.8 1.8 4.13.2 1.2.17 1.18.20 org.springframework.cloud spring-cloud-alibaba-dependencies0.2.0.RELEASE pom import org.springframework.cloud spring-cloud-dependenciesHoxton.SR12 pom import org.springframework.boot spring-boot-dependencies2.3.12.RELEASE pom import mysql mysql-connector-java8.0.25 com.alibaba druid1.1.10 org.mybatis.spring.boot mybatis-spring-boot-starter1.3.2 ch.qos.logback logback-core1.2.3 junit junit${junit.version} log4j log4j${log4j.version} org.projectlombok lombok${lombok.version}
注:同样以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-api1.0-SNAPSHOT junit junittest mysql mysql-connector-javacom.alibaba druidch.qos.logback logback-coreorg.mybatis.spring.boot mybatis-spring-boot-starterorg.springframework.boot spring-boot-test2.4.5 org.springframework.boot spring-boot-starter-web2.4.5 org.springframework.boot spring-boot-starter-jetty2.5.2 org.springframework.boot spring-boot-devtools2.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 ListqueryAll(); }
(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 Listlist(){ 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方式调用的。对这句话是不是就理解得更加深刻了。
【一心同学】在博客中的讲解喜欢用通俗易懂的文笔去讲明白一个知识点,而不喜欢用那种高大上的官方文笔来进行陈述,如果你对后端知识感兴趣,欢迎关注❤️❤️❤️【一心同学】❤️❤️❤️ 。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)