Spring Boot swagger之前后端分离

前后端分离详解

	现在的趋势发展,需要把前后端开发和部署做到真正的分离做前端的谁也不想用Maven或者Gradle作为构建工具做后端的谁也不想要用Grunt或者Gulp作为构建工具

前后端需要通过接口来协作

	可能是JSON格式的RESTFul的接口可能是XML的接口重点是后台只负责数据的提供和处理,而完全不处理展现而前端则负责拿到数据,组织数据并开始展现的工作

Swagger

Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。Swagger 让部署管理和使用功能强大的API从未如此简单。

项目图片

在这里插入图片描述

pom.xml

<!-- Swagger2强大RESTful API文档 -->
<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.2.2</version>
</dependency>
<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.2.2</version>
</dependency>

Swagger2配置类

package com.jege.spring.boot.swagger2;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;@Configuration
@EnableSwagger2
public class Swagger2 {// http://localhost:8080/swagger-ui.html// Swagger2默认将所有的Controller中的RequestMapping方法都会暴露,// 然而在实际开发中,我们并不一定需要把所有API都提现在文档中查看,这种情况下,使用注解// @ApiIgnore来解决,如果应用在Controller范围上,则当前Controller中的所有方法都会被忽略,// 如果应用在方法上,则对应用的方法忽略暴露API@Beanpublic Docket createRestApi() {return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.basePackage("com.jege.spring.boot.controller")).paths(PathSelectors.any()).build();}private ApiInfo apiInfo() {return new ApiInfoBuilder().title("je-ge的浆糊").description("je-ge的浆糊").termsOfServiceUrl("http://blog.csdn.net/je_ge").contact("je-ge").version("1.0").build();}}

控制器UserController

package com.jege.spring.boot.controller;import java.util.HashMap;
import java.util.Map;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;import com.jege.spring.boot.data.jpa.entity.User;
import com.jege.spring.boot.data.jpa.repository.UserRepository;
import com.jege.spring.boot.json.AjaxResult;import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;/*** 用户CRUD操作*/
@RestController
@RequestMapping("/user")
public class UserController {@Autowiredprivate UserRepository userRepository;// 显示用户列表@RequestMapping("/list")public String list() {return "user";}// 显示用户json数据@ApiOperation(value = "获取用户列表,支持分页", notes = "json方法获取用户列表")@ApiImplicitParams({ @ApiImplicitParam(name = "page", value = "当前页码", required = true, dataType = "int"),@ApiImplicitParam(name = "rows", value = "每页条数", required = true, dataType = "int") })@RequestMapping("/json")@ResponseBodypublic Map<String, Object> json(@RequestParam(name = "page", defaultValue = "1") int page,@RequestParam(name = "rows", defaultValue = "10") int rows) {Pageable pageable = new PageRequest(page - 1, rows);return findEasyUidata(userRepository.findAll(pageable));}private <T> Map<String, Object> findEasyUidata(Page<T> page) {Map<String, Object> map = new HashMap<String, Object>();map.put("rows", page.getContent());map.put("total", page.getTotalElements());return map;}// 处理保存@ApiOperation(value = "保存用户", notes = "根据User对象操作用户")@ApiImplicitParam(name = "user", value = "用户详细实体user", required = true, dataType = "User")@RequestMapping("/save")@ResponseBodypublic AjaxResult save(User user) {userRepository.save(user);return new AjaxResult().success();}// 处理删除@ApiOperation(value = "删除用户", notes = "根据url的id来指定删除对象")@ApiImplicitParam(name = "id", value = "用户id", required = true, dataType = "Long")@RequestMapping("/delete")@ResponseBodypublic AjaxResult delete(Long id) {userRepository.delete(id);return new AjaxResult().success();}
}

如果感觉不错记得给我点赞哟!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/565220.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MATLAB基础教程(5)——斐波那契数列

目录 前言 正文开始啦&#xff1a; 总体思路&#xff1a; 首先创建文件&#xff1a; 编写 fibo_use.m 文件的内容代码 编写 fibonacci_mine.m 文件中的代码 代码运行 总结&#xff1a; 前言 斐波那契数列是一个很有趣的数列&#xff0c;有趣的地方在两点&#xff0c;在…

数据采集与清洗基础习题(二)Python爬虫常用模块,头歌参考答案

数据采集习题参考答案&#xff0c;会持续更新&#xff0c;点个关注防丢失。为了方便查找&#xff0c;已按照头歌重新排版&#xff0c;朋友们按照头歌所属门类查找实训哦&#xff0c;该篇为Python爬虫常用模块。 创作不易&#xff0c;一键三连给博主一个支持呗。 文章目录 实…

Spring Boot freemarker导出word下载

freemarker详解 FreeMarker是一款模板引擎&#xff1a; 即一种基于模板和要改变的数据&#xff0c; 并用来生成输出文本&#xff08;HTML网页、电子邮件、配置文件、源代码等&#xff09;的通用工具。 它不是面向最终用户的&#xff0c;而是一个Java类库&#xff0c;是一款程序…

学生用计算机怎么累加,计算机一级OFFICE辅导:累加小技巧

我们在工作中常常需要在已有数值的单元格中再增加或减去另一个数。一般是在计算器中计算后再覆盖原有的数据。这样操作起来很不方便。考试大编辑推荐一个小技巧&#xff0c;可以有效地简化老式的工作过程。(1).创建一个宏&#xff1a;选择Excel选单下的“工具→宏→录制新宏”选…

不同进制之间的转化

将二进制、八进制、十六进制转换为十进制 二进制、八进制和十六进制向十进制转换都非常容易&#xff0c;就是“按权相加”。所谓“权”&#xff0c;也即“位权”。 假设当前数字是 N 进制&#xff0c;那么&#xff1a; 对于整数部分&#xff0c;从右往左看&#xff0c;第 i 位…

[刨根问底] 五分钟搞懂组合评价模型—模糊Borda (以2021 年大学生数模国赛C题为例)

组合评价模型—模糊Borda(Matlab) 我们的征途是星辰大海&#xff0c;而并非烟尘人间。 目录 组合评价模型—模糊Borda(Matlab) 一、模糊Borda法简介 二、模糊Borda法主要步骤 &#xff08;1&#xff09;计算隶属度 &#xff08;2&#xff09;计算模糊频数 &#xff08;…

计算机桌面右键新建展不开,Win10右键新建不见了怎么办?Win10电脑桌面右键新建没有了解决方法...

近期有Win10用户遇到一个问题&#xff0c;也就是电脑桌面右键新建没有了&#xff0c;比如想要创建一个文本文档、文件夹、Word&#xff0c;没有新建功能无法创建&#xff0c;那么Win10右键新建不见了怎么办&#xff1f;下面装机之家分享一下Win10电脑桌面右键新建没有了解决方法…

最常用的客观赋权方法——熵权法

我们的征途是星辰大海&#xff0c;而并非烟尘人间。 文章目录 一、熵权法的原理 1.1 信息熵 1.2 熵权法 二、熵权法的主要步骤 2.1 数据标准化 2.2 求各指标在各方案下的比值 2.3 求各指标的信息熵。 2.4 确定各指标的权重 2.4.1 通过信息熵计算各指标的权重&#…

2017韩老师计算机网络,2017年计算机等考三级网络技术辅导:计算机网络拓扑结构...

1&#xff0e;计算机网络拓扑的定义计算机网络设计的第一步就是网络拓扑设计。拓扑学是几何学的一个分支。计算机网络拓扑是通过网中结点与通信线路之间的几何关系表示网络结构&#xff0c;反映出网络各实体之间的结构关系。2&#xff0e;网络拓扑的分类网络拓扑可以根据通信子…

Spring Boot html页面解析之jsoup

目的 我们要对一个页面进行数据抓取&#xff0c;并导出doc文档 html解析器 jsoup 直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API&#xff0c;可通过DOM&#xff0c;CSS以及类似于JQuery的操作方法来取出和操作数据。 htmlparser 提供了线性和嵌套两种方…

2021年五一杯数学建模A题(疫苗生产调度问题)详细分析

目录 一、基本介绍 1.1 题目描述 1.2 待解决问题 二、问题分析与求解 2.1 问题一分析与求解 2.2 问题二分析与求解 2.3 问题三分析与求解 2.4 问题四分析与求解 2.5 问题五分析与求解 三、完整代码 四、总结 一、基本介绍 1.1 题目描述 新冠肺炎肆虐全球&#xff0…

Spring Boot EasyPoi导出Excel下载

Java关于excel的操作 Java Excel俗称jxl&#xff0c;可以读取Excel文件的内容、创建新的Excel文件、更新已经存在的Excel文件&#xff0c;现在基本没有更新了 Apache POI是Apache基金组织Jakarta项目的子项目&#xff0c;它包括一系列的API&#xff0c;可以操作多种格式的Mic…

2021年华中杯A题(马赛克瓷砖选色问题)详细分析

目录 一、基本介绍 1.1 题目描述 1.2 待解决问题 二、问题分析与求解 2.1 问题一分析与求解 2.2 问题二分析与求解 2.3 问题三分析与求解 三、完整代码 四、总结 一、基本介绍 1.1 题目描述 马赛克瓷砖是一种尺寸较小&#xff08;常见规格为边长不超过 5cm&#xff09…

计算机无法连接无线信号,win7系统连接无线信号时提示Windows无法连接到路由器名称的四种解决方法...

现如今网络发展速度非常快&#xff0c;无线网络已经普及了&#xff0c;使用率高了遇到的问题也就多了。比如有时候笔记本win7系统连接无线信号时出现“Windows无法连接到路由器名称”(如下图所示)&#xff0c;该如何解决此问题呢&#xff1f;下面脚本之家的小编介绍几种解决方法…

数据采集与清洗基础习题(四)Pandas初体验,头歌参考答案

数据采集习题参考答案&#xff0c;会持续更新&#xff0c;点个关注防丢失。 创作不易&#xff0c;一键三连给博主一个支持呗。 为了方便查找&#xff0c;已按照头歌重新排版&#xff0c;朋友们按照头歌所属门类查找实训哦&#xff0c;该篇为Pandas。 文章目录 实训一&#…

全国计算机准考证打印2015年,甘肃2015下半年全国计算机等级考试准考证打印时间...

甘肃2015下半年全国计算机等级考试准考证打印时间一、打印准考证考生可在考前2周之内登陆全省统一报名网站自主打印准考证&#xff0c;或到考点现场领取准考证。二、考试时间下半年&#xff1a;2015年9月19日至21日&#xff0c;分批进行。考试具体时间、地点均以“准考证”为准…

TOPSIS与模糊Borda 的组合应用(以第二届大湾区杯和国赛为案例)

目录 一、TOPSIS&#xff08;优劣解距离法&#xff09;简介 二、TOPSIS&#xff08;优劣解距离法&#xff09;主要步骤 &#xff08;1&#xff09;数据进行标准化 &#xff08;2&#xff09;构建决策矩阵 &#xff08;3&#xff09;构造加权规范阵 &#xff08;4&#xf…

Spring Boot 页面国际化

internationalization详解 国际化&#xff08;internationalization&#xff09;是设计和制造容易适应不同区域要求的产品的一种方式。它要求从产品中抽离所有地域语言&#xff0c;国家/地区和文化相关的元素。换言之&#xff0c;应用程序的功能和代码设计考虑在不同地区运行的…

唯美计算机语言,唯美精辟的语句

1、当泪水一滴滴的掉落在我的手上&#xff0c;那时竟想为何我非你不可&#xff01;2、原来再美好的承诺&#xff0c;最终还是会被现实打败。3、明明不是陌生人&#xff0c;却装的&#xff0c;比陌生人&#xff0c;还要陌生。4、如果我是个瘦子&#xff0c;伤心时我还可以数数排…

不到30的成本,还不赶紧造起来——盘点软著申请小知识

今年上半年的时候跟着老师做项目&#xff0c;为了学习应付中期报告&#xff0c;就自己写了一个小软件&#xff0c;然后申请了一个软著&#xff0c;至于为啥要头铁的自己上呢&#xff0c;因为想要拿独立著作权&#xff0c;那当然是没有报销的啦~&#xff0c;这里有同学就要问啦&…