IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> SpringBoot+vue+实战项目之第3集 -> 正文阅读

[Java知识库]SpringBoot+vue+实战项目之第3集

1.《锋迷商城》业务流程设计-接?规范

在企业项?开发中,当完成项?的需求分析、功能分析、数据库分析与设计之后,
项?组就会按照项?中的功能进?开发任务的分配

在这里插入图片描述

1.1 前后端分离与单体架构流程实现的区别

单体架构:??和控制之间可以进?跳转,同步请求控制器,流程控制由控制器来完成
前后端分离架构:前端和后端分离开发和部署,前端只能通过异步向后端发送请求,
后端只负责接收请求及参数、处理请求、返回处理结果,但是后端并不负责流程控制,
流程控制是由前端完成

1.1.1单体架构

在这里插入图片描述

1.1.2 前后端分离架构

在这里插入图片描述

1.2 接口介绍

1.2.1接口概念

狭义的理解:就是控制器中可以接受?户请求的某个?法
应?程序编程接?,简称API,就是软件系统不同组成部分衔接的约定

1.2.2接口规范

参考:《锋迷商城》后端接?说明
在这里插入图片描述

1.3 Swagger

前后端分离开发,后端需要编写接?说明?档,会耗费?较多的时间
swagger是?个?于?成服务器接?的规范性?档、并且能够对接?进?测试的?具

1.3.1作用

  1. ?成接?说明?档
  2. 对接?进?测试

1.3.2 Swagger整合

  1. 在api??程添加依赖(Swagger2 \ Swagger UI)
<dependency>
 	 <groupId>io.springfox</groupId>
	 <artifactId>springfox-swagger2</artifactId>
	 <version>2.9.2</version>
</dependency>
<dependency>
	 <groupId>io.springfox</groupId>
	 <artifactId>springfox-swagger-ui</artifactId>
	 <version>2.9.2</version>
</dependency>
  1. 在api??程创建swagger的配置(Java配置?式)
@Configuration
@EnableSwagger2
public class SwaggerConfig {
 	/*swagger会帮助我们?成接??档
	 * 1:配置?成的?档信息
	 * 2: 配置?成规则*/
	 /*Docket封装接??档信息*/
	 @Bean
	 public Docket getDocket(){
	 //创建封?信息对象
		 ApiInfoBuilder apiInfoBuilder = new ApiInfoBuilder();
 		 apiInfoBuilder.title("《锋迷商城》后端接?说明")
 			  		   .description("此?档详细说明了锋迷商城项?后端接?规范....")
					   .version("v 2.0.1")
 					   .contact( new Contact("亮哥","www.liangge.com","liangge@wang.com") );
		 ApiInfo apiInfo = apiInfoBuilder.build();
 		 Docket docket = new Docket(DocumentationType.SWAGGER_2)
						 .apiInfo(apiInfo) //指定?成的?档中的封?信息:?档标题、版本、作者
						 .select()	 
						 .apis(RequestHandlerSelectors.basePackage("com.qfedu.fmmall.controller"))
						 .paths(PathSelectors.any())
						 .build();
		 return docket;
	 }
}
  1. 测试:
    启动SpringBoot应?,访问:http://localhost:8080/swagger-ui.html

1.3.3 Swagger注解说明

  1. swagger提供了?套注解,可以对每个接?进?详细说明
  2. @Api 类注解,在控制器类添加此注解,可以对控制器类进?功能说明
@Api(value = "提供商品添加、修改、删除及查询的相关接?",tags = "商品管理")   
  1. @ApiOperation ?法注解:说明接??法的作?
  2. @ApiImplicitParams 和 @ApiImplicitParam ?法注解,说名接??法的参数
  3. @ApiModel 和 @ApiModelProperty 当接?参数和返回值为对象类型时,在实体类中添加注解说明
  4. @ApiIgnore 接??法注解,添加此注解的?法将不会?成到接??档中

1.3.4 Swagger-ui 插件

导入插件依赖

<dependency>
 	<groupId>com.github.xiaoymin</groupId>
 	<artifactId>swagger-bootstrap-ui</artifactId>
	<version>1.9.6</version>
</dependency>

1.4 RESTful

  1. 前后端分离开发的项?中,前后端之间是接?进?请求和响应,后端向前端提供请求时就要对外暴露?个URL;URL的设计不能是随意的,需要遵从?定的设计规范——RESTful
RESTful 是?种Web api的标准,也就是?种url设计?格/规范
每个URL请求路径代表服务器上的唯?资源
传统的URL设计:
	 http://localhost:8080/goods/delete?goodsId=1 商品1
	 http://localhost:8080/goods/delete?goodsId=2 商品2
RESTful设计:
	 http://localhost:8080/goods/delete/1 商品1
 	 http://localhost:8080/goods/delete/2 商品2

 @RequestMapping("/delete/{gid}")
 public ResultVO deleteGoods(@PathVariable("gid") int goodsId){
	 System.out.println("-----"+goodsId);
 	 return new ResultVO(10000,"delete success",null);
}
  1. 使?不同的请求?式表示不同的操作
SpringMVC对RESTful?格提供了很好的?持,在我们定义?个接?的URL时,可以通
过@RequestMapping(value="/{id}",method=RequestMethod.GET) 形式指定请求
?式,也可使?特定请求?式的注解设定URL
@PostMapping("/add")
@DeleteMapping("/{id}")
@PutMapping("/{id}")
@GetMapping("/{id}")
post 添加.  get 查询.  put 修改. delete 删除. option (预检).
  1. 接?响应的资源的表现形式采?JSON(或者XML)
  2. 在控制类或者每个接??法添加 @ResponseBody 注解将返回的对象格式为json
  3. 或者直接在控制器类使? @RestController 注解声明控制器
  4. 前端(Android\ios\pc)通过?状态的HTTP协议与后端接?进?交互
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-09-09 11:36:30  更:2021-09-09 11:37:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/31 7:43:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码