返回顶部
首页 > 资讯 > 后端开发 > Python >SpringCloud环境搭建过程之Rest使用小结
  • 833
分享到

SpringCloud环境搭建过程之Rest使用小结

SpringCloud  Rest使用SpringCloud环境搭建 Rest使用 2022-11-13 14:11:55 833人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录Rest环境搭建provider-服务端提供者consumer-消费者今天来到SpringCloud的学习,我们从Spring Boot微服务阶段,学习到了用SpringBoot

今天来到SpringCloud学习,我们从Spring Boot微服务阶段,学习到了用SpringBoot去创建很多的微服务,但是这么多微服务我们如果去管理,以及相互之间的联系呢?

而到了我们学习springcloud阶段,其实相对而言是变简单的,不需要写很多代码以及什么操作,主要就是接收思想,了解其中的机制,而sprinGCloud项目基于springboot项目,只需要几行简单的配置即可开始使用;

那来到了我们最熟悉的官网:https://spring.io/

进入spring cloud的学习,可以去读读这里的话,我读懂了,不告诉你

从springcloud的学习,我们可以看这张图,我们学习这里面几个部分

Rest环境搭建

环境说明:jdk1.8,idea2019,Maven3.6.X,springcloud最新版2021.0.3,mybatis-plus

我们首先搭建一个父工程项目,创建一个空的普通的maven项目,我们直接把src目录删除掉,pom文件写下面的使用父工程管理依赖,这里都是与文章日期最新依赖。

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <junit.version>4.12</junit.version>
    <log4j.version>1.2.17</log4j.version>
    <lombok.version>1.18.24</lombok.version>
    <springcloud-version>2021.0.3</springcloud-version>
</properties>
<dependencyManagement>
    <dependencies>
        <dependency>
            <!--springcloud依赖-->
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>${springcloud-version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <!-- springboot依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>2.7.0</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <!--Mysql驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.28</version>
        </dependency>
        <!-- Https://mvnrepository.com/artifact/com.alibaba/druid -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.2.11</version>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.0.5</version>
        </dependency>
        <!--日志测试-->
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
            <version>1.2.3</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>${junit.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>${log4j.version}</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>${lombok.version}</version>
        </dependency>
    </dependencies>
</dependencyManagement>
<build>
    <!--父工程的项目名称-->
    <finalName>springcloud</finalName>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
        </resource>
    </resources>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <configuration>
                <!--以$开头结尾 符合在src/main/resources路径下面访问到 主要是yml文件或者properties文件-->
                <delimiters>
                    <delimit>$</delimit>
                </delimiters>
            </configuration>
        </plugin>
    </plugins>
</build>

有了父工程项目,我们再准备一个数据库环境,写一个api类,这里我们新建一个简单的账户表,往里面插入几条简单的数据

DROP TABLE IF EXISTS `account`;
CREATE TABLE `account` (
  `account_id` int(11) NOT NULL,
  `account_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
  `account_pwd` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
  PRIMARY KEY (`account_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

-- ----------------------------
-- Records of account
-- ----------------------------
INSERT INTO `account` VALUES ('1', 'zhangsan', '333');
INSERT INTO `account` VALUES ('2', 'lisi', '444');
INSERT INTO `account` VALUES ('3', 'wangwu', '555');
INSERT INTO `account` VALUES ('4', 'zhangliu', '666');
INSERT INTO `account` VALUES ('5', 'qiqi', '777');
INSERT INTO `account` VALUES ('6', 'baba', '888');

新建一个maven普通项目起名叫springcloud-api,里面呢,放一个这样的实体类,与表的关系对应起来的一个简单对象,使用了lombok,这里大家可以自行去了解

1、导入依赖

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
</dependency>

我们可以看到这里如果正确会有一个小圆圈,如果你这里没有,那就要检查下父工程依赖了

2、编写配置,这里没有什么配置,所以就是滤过

3、编写对应代码

provider-服务端提供者

再新建一个maven普通项目模块,我们做服务的提供者

1、导入依赖

<dependencies>
    <dependency>
        <groupId>com.xuexi</groupId>
        <artifactId>springcloud-api</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>

    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
    </dependency>

    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-core</artifactId>
    </dependency>

    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-test</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-WEB</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
    </dependency>
</dependencies>

2、编写配置

新建一个application.yml文件,内容如下:

server:
  port: 8001

spring:
  application:
    name: springcloud-provider-account
  datasource:
    driverClassName: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/lianxi?useUnicode=true&zeroDateTimeBehavior=convertToNull&autoReconnect=true&characterEncoding=utf-8
    username: root
    passWord: 
    type: com.alibaba.druid.pool.DruidDataSource  #使用阿里的数据源

# mybatis-plus配置日志
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  type-aliases-package: com.xuexi.pojo
  mapper-locations: classpath:mapper/*.xml
  global-config:
    db-config:
      table-underline: true  #实体类驼峰转下划线,默认就是

3、编写代码,服务提供者我们只需要编写dao层和service层,这里使用了mybaits-plus所以比较简单,直接给大家截图

dao层

service层

这里我们可以编写一个controller进行下测试

@RestController
public class AccountController {

    @Autowired
    AccountService accountService;

    @PostMapping("/account/add")
    public boolean addAccount(Account account){
        return accountService.save(account);
    }

    @GetMapping("/account/get/{id}")
    public Account get(@PathVariable("id") long id){
        return accountService.getById(id);
    }

    @GetMapping("/account/list")
    public List<Account> getAll(){
        return accountService.list(null);
    }
}

测试成功

consumer-消费者

同样的我们再建一个普通的maven子工程项目,我们进行服务的消费

1、导入依赖

<dependencies>
    <dependency>
        <groupId>com.xuexi</groupId>
        <artifactId>springcloud-api</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
    </dependency>

</dependencies>

2、编写配置

新建一个application.yml

server:
  port: 80

3、编写代码

代码编写前,我们认识一个东西,就是我们的标题,REST这个东西,这里我觉得你学到这里应该很容易理解,所以我觉得还是先上代码吧

首先编写一个config配置类,我们把RestTemplate这个对象接管到spring容器

@Configuration
public class BeanConfig {
    @Bean
    public RestTemplate getRestTemplate(){
        return new RestTemplate();
    }
}

接着编写我们的消费代码,ConsumerController

@RestController
public class ConsumerController {
    private static final String REST_URL_PREFIX = "http://localhost:8001";
    @Autowired
    RestTemplate restTemplate;

    @PostMapping("/cousumer/add")
    public boolean addAccount(Account account) {
        return restTemplate.postForObject(REST_URL_PREFIX+"/account/add",account,boolean.class);
    }
    @GetMapping("/cousumer/get/{id}")
    public Account get(@PathVariable("id") long id) {
        return restTemplate.getForObject(REST_URL_PREFIX+"/account/get/"+id,Account.class);
    }
    @GetMapping("/cousumer/list")
    public List<Account> getAll() {
        return restTemplate.getForObject(REST_URL_PREFIX+"/account/list",List.class);
    }
}

上面我都没有给大家说编写springboot启动类,别到这里还没启动呀,每一个项目下面,编写一个这样的启动类

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

我们启动下消费方,看下是否可以远程调用服务方服务,测试成功,远程调用了我们的服务消费掉

其实我们都学过网络请求,RestTemplate其实就是封装好的一个请求对象,然后可以通过get|post|delete|put请求,里面也没有多少方法,点以下就都出来了,这么简单,很容易看懂并学会吧!

其实就像前后段分离,发送异步请求,通过不断地请求服务,然后去实现功能,一种直连的方式,对地址和端口请求服务

但是我们可以发现,这样是有缺点的,比如provider宕机了,consumer请求是请求不到了的,而且也不能做一些检测,负载均衡,轮询等方式;那我们接着学习再加一层
下一篇我们尝试下使用Eureka注册中心,持续更新中·····

到此这篇关于SpringCloud环境搭建 --- Rest使用的文章就介绍到这了,更多相关SpringCloud  Rest使用内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: SpringCloud环境搭建过程之Rest使用小结

本文链接: https://lsjlt.com/news/172015.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • SpringCloud环境搭建过程之Rest使用小结
    目录Rest环境搭建provider-服务端提供者consumer-消费者今天来到SpringCloud的学习,我们从spring boot微服务阶段,学习到了用springboot...
    99+
    2022-11-13
    SpringCloud  Rest使用 SpringCloud环境搭建  Rest使用
  • LAMP环境搭建小结
    1. 为什么下载源码包需要到官网上去下载?简单说就是为了安全,如果是非官方下载的源码包,有可能被别有用心的人动过手脚,毕竟是源码的,任何人都可以修改代码。2. 64位机器是否可以安装32位rpm包?64位机...
    99+
    2024-04-02
  • nvmmac环境搭建过程
    目录原因安装下载完成大概如此临时环境变量配置配置永久环境变量原因 需要用到多个node环境所以需要安装nvm,故此有本文,不成功来打我! 安装 curl -o- https://r...
    99+
    2023-02-16
    nvm mac 环境搭建 nvm mac
  • 使用IDEA搭建MyBatis环境详细过程
    创建一个项目 这里根据需求自己选择 在pom.xml中导入mybatis的核心jar包 Mybatis 源码下载 https://github.com/mybatis/mybat...
    99+
    2024-04-02
  • redis debug环境搭建过程详解(使用clion)
    目录概要环境搭建的大体思路windows下安装linux工具链什么是make和cmake安装c语言开发的ide具体安装步骤clion安装及插件安装克隆redis 代码如何调试如何调试...
    99+
    2024-04-02
  • 使用Docker搭建ApacheKafka环境的详细过程
    目录安装单个节点docker-compose.yml 配置安装集群环境docker-compose.yml配置启动kafka集群总结Docker是最受欢迎的容器引擎之一,软件行业用于...
    99+
    2022-11-13
    Docker Apache Kafka环境 Docker搭建 Kafka环境
  • Jenkins环境搭建之下载与安装过程
    目录Jenkins简介Jenkins目的Jenkins特性Jenkins下载Jenkins安装Jenkins简介 Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,...
    99+
    2024-04-02
  • 使用springCloud+nacos集成seata1.3.0搭建过程
    1.docker安装seata 1.3.0镜像 docker pull seataio/seata-server:1.3.0 2.运行容器获取配置文件 docker run -...
    99+
    2024-04-02
  • PyCharm使用教程之搭建Python开发环境
    PyCharm是JetBrains系列产品的一员,也是现在最好用的IDE。PyCharm维持了JetBrains一贯高度智能的作风,简要枚举如下: 独特的本地VCS系统 强大的重构功能 基于...
    99+
    2022-06-04
    环境 教程 PyCharm
  • yolov5win10CPU与GPU环境搭建过程
    目录前言一、安装pytorch1.创建新的环境2.下载YOLOv5 github项目3.安装相关依赖库和包4.验证二、运行detect.py文件总结前言 最近实习任务为黑烟检测,想起...
    99+
    2024-04-02
  • Appium环境搭建详细过程
    这篇文章主要介绍“Appium环境搭建详细过程”,在日常操作中,相信很多人在Appium环境搭建详细过程问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Appium环境搭建详细过程”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-15
  • Seata 环境搭建部署过程
    目录前提准备1.下载2.建表3.配置 nacos3.1 上传配置至Nacos配置中心4.修改 appplication.yml4.1 seata.store4.2 seata.con...
    99+
    2022-11-13
    Seata 环境搭建 Seata搭建 Seata部署
  • VScode + keil开发环境搭建安装使用过程
    写在前面 来了新公司之后,由于这次遇见的单片机是GD32,之前的前辈也都在keil上编程,所以又不得不拿起keil,可是无奈天下苦keil的UI久矣,中途尝试过几次修改KEIL高亮及...
    99+
    2024-04-02
  • 教你使用eclipse 搭建Swt 环境的全过程
    目录一、查看当前使用的eclipse 版本型号二、到官网上去下载相匹配的SWT插件,或者直接在线安装三、安装SWT插件1、在线安装2、本地安装四、激活SWT插件,未激活的插件只能够使...
    99+
    2024-04-02
  • CentOS7环境下使用Docker搭建PHP运行环境的过程详解
    相关文章: CentOS7下使用yum安装Docker Win10环境下使用Docker搭建PHP运行环境 1、创建私有网络 docker network create lnmp...
    99+
    2024-04-02
  • SpringCloud学习笔记之SpringCloud搭建父工程的过程图解
    目录SpringCloud和SpringBoot版本选择更详细的版本选择相关技术选型创建工程创建父工程新建maven工程配置父工程的pom文件SpringCloud是分布式微服务架构...
    99+
    2024-04-02
  • Angular环境搭建及简单体验小结
    Angular介绍 Angular是谷歌开发的一款开源的web前端框架,诞生于2009年,由Misko Hevery 等人创建,后为Google所收购。是一款优秀的前端JS框架,已...
    99+
    2024-04-02
  • golang beego框架环境搭建过程
    目录环境搭建1.开启gomod设置代理2.安装beego和bee3.升级bee4.zsh: command not found: bee5.bee相关命令6.项目启动7.beego项...
    99+
    2024-04-02
  • VS Code C++环境的搭建过程
    目录1.搭建C/C++2.注意事项Visual Studio Code(简称“VS Code” )是Microsoft在2015年4月30日Build开发者大...
    99+
    2024-04-02
  • django项目环境的搭建过程
    本篇内容介绍了“django项目环境的搭建过程”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!安装环境:centos7.41 安装nginx&...
    99+
    2023-06-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作