import java.io.Serializable; import lombok.Data; import org.springframework.http.HttpStatus; @Data public class Result implements Serializable { private static final long serialVersionUID = -1802122468331526708L; private Integer code;// 状态码 private S…
综合概述 spring-boot作为当前最为流行的Java web开发脚手架,越来越多的开发者选择用其来构建企业级的RESTFul API接口.这些接口不但会服务于传统的web端(b/s),也会服务于移动端.在实际开发过程中,这些接口还要提供给开发测试进行相关的白盒测试,那么势必存在如何在多人协作中共享和及时更新API开发接口文档的问题. 假如你已经对传统的wiki文档共享方式所带来的弊端深恶痛绝,那么尝试一下Swagger2 方式,一定会让你有不一样的开发体验. 使用 Swagger 集成文档…
一.创建一个SpringBoot项目 从零开始的SpringBoot项目 ( 二 ) 使用IDEA创建一个SpringBoot项目 二.引入相关依赖 <!--mysql数据库驱动--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </de…
1.添加依赖 <!-- MySQL数据库 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.38</version> </dependency> <!-- mybatis --> <dependency> <groupI…
在后端数据接口项目开发中,经常遇到返回的数据中有null值,导致前端需要进行判断处理,否则容易出现undefined的情况,如何便捷的将null值转换为空字符串? 以SpringBoot项目为例,SSM同理. 1.新建配置类(JsonConfig.java) import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonProcessingException; import com.f…
一.新建springboot项目 1. new-->Project-->Spring Initralizr Group:com.zb Artifact:zbook springboot version:2.0.4 2. 将 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </…
前言 今天是我加入博客园的第一天今天刚好学习到SpringBoot,就顺便记录一下吧 一.创建项目 1.创建工程 ① 通过File > New > Project,新建工程,选择Spring Initializr,然后Next Project SDK 选择安装的JDK: Choose Initializr Service URL 选择默认(Default:https://start.spring.io) ② 进行项目配置 主要设置项目组(Group),项目标识(Artifact 注:不能包含大…
工欲善其事 , 必先利其器 . IntelliJ IDEA 2019.3.3 x64的安装与破解 下面详细说明下如何使用idea创建我们的第一个springboot项目: 首先打开idea主界面选择 +Create New Project 在弹出的页面中我们选择左侧的Spring Initializr,jdk版本选择自己安装的版本,注意,这里idea默认使用https://start.spring.io提供的在线模板,所以需要保证网络畅通. 特别说明:由于springboot版本选择的是2.0.…
要想开始一个SpringBoot项目 , 首先要知道SpringBoot是什么 , 可以做什么 , 再去研究怎么用 . 一.概念 1.Spring Spring是一个开源容器框架,可以接管web层,业务层,dao层,持久层的组件,并且可以配置各种bean,和维护bean与bean之间的关系.其核心就是控制反转(IOC),和面向切面(AOP),简单的说就是一个分层的轻量级开源框架. 2.SpringMVC Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring W…
1.首先了解一下Token uid: 用户唯一身份标识 time: 当前时间的时间戳 sign: 签名, 使用 hash/encrypt 压缩成定长的十六进制字符串,以防止第三方恶意拼接 固定参数(可选): 将一些常用的固定参数加入到 token 中是为了避免重复查数据库 2.token 验证的机制(流程) 用户登录校验,校验成功后就返回Token给客户端. 客户端收到数据后保存在客户端 客户端每次访问API是携带Token到服务器端. 服务器端采用filter过滤器校验.校验成功则返回请求数据…
pom.xml 修改打包类型 jar 改为 war 添加 tomcat 依赖 找到最右边的 Maven Projects,点击进去,选择需要打包的项目,并点击 install,就开始打包了,打包前先点击 clean 清理 target 文件夹. 找到 war 包,复制出来,去掉项目名后面的版本号,运行试试看是否打包成功 在浏览器访问:localhost:8080 能成功访问,说明打的包是没有问题的 .…
一.准备工作 1.工具:Idea , maven 2.首先得保证 pom 有 maven 插件 二.开始打包 找到最右边的Maven Projects,点击进去,选择需要打包的项目,并点击 install,就开始打包了,打包前先点击 clean 清理 target 文件夹. 找到jar包,复制出来,去掉项目名后面的版本号,运行试试看是否打包成功! 可以看到能正常启动 在浏览器访问:localhost:8080 能成功访问,说明打的包是没有问题的 .…
网云穿-最简单易用的内网穿透软件,最简洁教程一键穿透网站.数据库.远程桌面 网云穿,致力于打造最便捷的「内网穿透」应用 https://xiaomy.net/index.html  网云穿是一款可以在包括但不限于Windows.Mac.Linux.群辉.树莓派.威联通上使用的内网穿透,它可以很便捷的帮助你将本地内网的应用发布出去,比如:网站.数据库.硬盘文件.远程桌面.应用.游戏(如我的世界)等等,这样您就可以很方便的微信调试.自建云盘.异地办公等等,它不需要您有公网IP.不需要您有服务器.也不…
springboot之全局处理统一返回 简介 在REST风格的开发中,避免通常会告知前台返回是否成功以及状态码等信息.这里我们通常返回的时候做一次util的包装处理工作,如:Result类似的类,里面包含succ.code.msg.data等字段. 接口调用返回类似如下: { "succ": false, // 是否成功 "ts": 1566467628851, // 时间戳 "data": null, // 数据 "code"…
Springboot项目统一异常处理 一.接口返回值封装 1. 定义Result对象,作为通用返回结果封装 2. 定义CodeMsg对象,作为通用状态码和消息封装 二.定义全局异常类 三.定义异常处理类 四.特殊处理404异常 五.测试使用效果 一.接口返回值封装 基于目前大多数项目都采用前后端分离架构,所以后端接口统一返回值封装是比较重要的,便于前后端对接与统一处理.当然按各自项目约定实现即可,思路大同小异,下面是我的实现方式,仅供参考 1. 定义Result对象,作为通用返回结果封装 /**…
转自https://blog.csdn.net/hao_kkkkk/article/details/80538955 最近在做项目时需要对异常进行全局统一处理,主要是一些分类入库以及记录日志等,因为项目是基于Springboot的,所以去网络上找了一些博客文档,然后再结合项目本身的一些特殊需求做了些许改造,现在记录下来便于以后查看. 在网络上找到关于Springboot全局异常统一处理的文档博客主要是两种方案: 1.基于@ControllerAdvice注解的Controller层的全局异常统一…
springboot项目上传存储图片到七牛云服务器 问题描述: 当图片存在本地时会出现卡顿的现象.比如一篇图文混排的文章,如果图片没有加载完,可能整个文章都显示不出来,因为它们都是用的同一个服务器. 但是如果把图片单独拿出来放在云服务器上进行加载,这样图片的加载和文字的加载互不干扰,就可以优化这个问题. 首先要到七牛云官网注册账号并登陆 ​ 这是官网:https://www.qiniu.com/ 登录之后在右上角找到[控制台]选项,第一次进入的话是没有存储空间的,所以需要新建一个存储空间. 创建…
[.NET Core项目实战-统一认证平台]开篇及目录索引 上篇文章我介绍了如何在网关上增加自定义客户端授权功能,从设计到编码实现,一步一步详细讲解,相信大家也掌握了自定义中间件的开发技巧了,本篇我们将介绍如何实现自定义客户端的限流功能,来进一步完善网关的基础功能. .netcore项目实战交流群(637326624),有兴趣的朋友可以在群里交流讨论. 一.功能描述 限流就是为了保证网关在高并发或瞬时并发时,在服务能承受范围内,牺牲部分请求为代价,保证系统的整体可用性而做的安全策略,避免单个服务…
本文链接:https://blog.csdn.net/syystx/article/details/82870217通常进行前后端分离开发时我们需要定义统一的json数据交互格式并对系统未处理异常进行处理.以下具体介绍在springboot中的实现过程,通过该章节代码可实现框架统一异常处理,并当后台接口反馈类型不为统一格式时能够进行重新包装成统一格式进行返回. 具体实现如下: 1.定义统一返回格式 public class RtnMsg{ private String rtnCode; priv…
1.创建JSP目录 在src/main目录下创建目录webapp/WEB-INF/jsp用于存放jsp页面,如下图: 然后再改文件夹下面我们创建JSP文件: 大家在使用IDEA 的new菜单创建JSP时发现菜单里面根本没有JSP...这就很尴尬了吧.你知道为啥吗?因为IDEA很专业的,IDEA项目下面每一种文件夹都代表不同的功能,现在new的菜单没有JSP说明IDEA根本不认为这里应该创建JSP,那怎么办呢?按照下图设置: Ctrl+Alt+Shift+S快捷键打开设置项目配置的页面: 上面的操…
SpringBoot使用AOP统一处理请求日志 这里就提到了我们Spring当中的AOP,也就是面向切面编程,今天我们使用AOP去对我们的所有请求进行一个统一处理.首先在pom.xml中引入我们需要的aop的jar包 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </depen…
一.docker环境配置 首先需要一个安装了docker的服务器(本地或者云服务器),如果没有请看上文,传送门---https://www.cnblogs.com/wdfordream/p/12737389.html 我这里是直接在云服务器上搭建了docker 云环境:CentOS 7.6 64位 二.构建镜像 1. 用DockerFile构建镜像 通过DockerFile以及springboot.jar包构建镜像.jar包可以通过本地打jar包上传到服务器也可以在服务器上拉取代码通过maven…
前提:linux环境,jenkins服务器和springboot服务器不在一台机器. linux环境,jenkins这里就不说了,主要说下和windows环境的不同. 1. jenkins服务器连接springboot服务器通过秘钥连接,所以需要设置免密码登录,参照:https://www.cnblogs.com/gexiaoshan/p/9404424.html 2. 在jenkins上,系统管理-系统设置里配置秘钥路径,如下图: Passphrase:密码(key的密码,如果你设置了,没有设…
导航 前言 流水线 架构的艺术 项目架构 理解阿里应用分层架构 superblog项目架构 结语 参考 本节是<Spring Boot 实战纪实>的第7篇,感谢您的阅读,预计阅读时长3min. 智客工坊出品必属精品. 前言 关于架构的理解,一千个人心中有一千个哈姆莱特.这和项目经验和团队文化有很大关系.   我想很多人其实对编程是有误解的.在中国古代提倡六艺,后面又提倡琴棋书画,这些都是才艺或者技艺.编程也是一门技艺,并没有大家想象的那么神秘.当我们通过书本学到一门编程语言的时候,往往只是学到…
上一篇讲过了将Springboot项目中logback日志插入到ELK日志平台,它只是个示例.这一篇来看一下实际使用中,我们应该怎样通过aop切面,拦截所有请求日志插入到ELK日志系统.同时,由于往往我们有很多个服务,都需要记录日志,为每个服务都搭建一个ELK并不现实,所以我们采用集中化管理日志,将所有日志都插到同一个ELK中.这样又会遇到另一个问题,就是ES中的Index如果只有一个,那么所有日志都混杂在一个Index里,为日后的检索带来不便,我们希望能根据不同的应用来拆分为不同的ES的Ind…
一:快速构建springboot项目 进入https://start.spring.io/,选择相应的springboot版本,包名,项目名,依赖 图中选择web,利用tomcat服务器进行开发 springboot项目目录   二:安装gradle 进入https://gradle.org,选择相应的gradle版本进行下载,不同的springboot版本对gradle要求不同 下载好gradle后,到电脑的高级设置中配置环境变量 在path变量中加入:E:\java\gradle\gradl…
写在前面 之前也一直很少有写SpringBoot项目相关的文章,今天 准备整理一个我自己初始化SpringBoot项目时的一个脚手架,便于自己后面查阅.因为SpringBoot的约定大于配置,在整合各个组件的时候,我们仅仅写很少的代码就能 整合 跑起来. 本文,也仅仅是一个简单的整合,更多个性化配置,更多调优,这个也是自己在工作中慢慢摸索的.如果你有什么更多好的建议或者意见,也可以留言交流.谢谢~ 我们开始吧 新建SpringBoot 2.0.3.RELEASE web 项目 标题1:AOP 切…
全局统一返回RESTful风格数据,主要是实现ResponseBodyAdvice接口的方法,对返回值在输出之前进行修改.使用注解@RestControllerAdvice拦截异常并统一处理. 开发环境:IntelliJ IDEA 2019.2.2jdk1.8Spring Boot 2.2.2 1.创建一个SpringBoot项目,pom.xml引用的依赖包如下 <dependency> <groupId>org.springframework.boot</groupId&g…
我们接着上篇继续写,继续进行springboot项目 一. swagger2 接口描述,测试每个接口是否有效 1. 添加依赖 pom.xml 在编辑pom.xml之前,要先关闭spring-boot项目 eclipse 编辑pom.xml.当编辑完毕保存pom.xml后eclipse会帮我们自动下载依赖.eclipse这个自动化操作可能会出现一些问题. mvn install <dependency> <groupId>io.springfox</groupId> &l…
异常在项目中那是不可避免的,通常情况下,我们需要对全局异常进行处理,下面介绍两种比较常用的情况. 准备工作: 在捕获到异常的时候,我们通常需要返回给前端错误码,错误信息等,所以我们需要手动封装一个jsonData对象,这里为了方便,我直接通过返回布尔类型来进行判断成功或失败,在实际的项目中更多是返回状态码 比如 0.1 .404 .500 等,在这里不影响我们演示. jsondata对象 自定义一个异常  (注意需要继承RuntimeException,因为在spring中仅有RuntimeEx…