-
背景 之前项目中有使用retrofit来封装http请求,Retrofit是一个对RESTful的HTTP网络请求框架的封装,网络请求是由OkHttp负责的。遇到项目中有添加内部权限框架,需要首先请求权限系统,而且如果权限异常,返回值...
-
H2数据库简单介绍 h2 是一个流行的非常轻量级的优秀开源数据库,支持内存和文件模式。在开发和测试阶段使用起来非常简洁,不用单独部署MySQL环境,只需要几条配置就可以启动。而且语法和MySQL十分相似,可以很好的满足测试开发阶段的需...
-
Aop指面向切面编程,在spring mvc 里已经出现,springBoot作为体系之一,也包含AOP。在一个Web应用中,我希望记录所有请求的远端地址,请求客户端类型,请求URI等记录,一方面是为了做安全记录,同时也可以提供后期考...
-
背景 Springboot是日常项目中非常流行的框架,但很少有人深入了解过SpringBoot是如何将一个请求映射到最终的方法的。今天这篇文章就从请求入口开始,带大家了解其中的原理。 准备工作 首先创建一个空的SpringbootWe...
-
场景描述 最近有个需求,要对某个通用参数做限制检查,判断是否存在,不存在判定为异常请求。最直接的方式是通过给每个接口加判断,如果接口少的情况下,是最简单有效的。但当前项目的情况比较复杂,这种方式会造成大量冗余代码,也不易维护和修改。大...
-
背景和要求 项目中要求记录部分业务请求的返回值,需要全部记录,且可以通过具体的请求字段,能够查询到,用来做问题查询和处理。项目本身接入了一套ELK体系,能够查询相关的请求日志,但是没有记录返回值,且这个实现是全局的,如果直接扩展,记录...
-
背景 我们在开发中,如果涉及到双端的交互,最好能统一调用的格式。确实很多人是这样做的,但是如果完全依赖开发者各自去维持这个规则,随着业务的增长,接口的增多,会带来额外的开发量,而且很大可能最终也没法保证完全遵守对应的规则。所以,如果能...
-
场景描述 之前写过一篇通过AOP在DAO层做分表插件的文章,最近要将其实际用在生产中。因为目前项目的DAO层是从之前的项目框架中整体迁移过来的,有很大的变化,为了避免疏漏,所以要对新mapper的接口做测试验证以及问题修复。首先想到的...
-
背景 项目之前使用swagger用来做服务端的接口展现,我们知道swagger默认的页面比较粗糙,所以国人开发了一个更加便于使用的界面knife4j,吐槽下这个名字起的很拗口。 遇到的问题 在项目初期使用knife4j没出现什么问题,...
-
这篇文章简单介绍下spring的@Async注解和对应的使用,主要是以springboot来举例。首先这个注解提供了一种方便使用异步编程的功能,仅仅在需要的方法上添加这个注解,就可以让对应的方法异步的执行。实质上,该方法还是放在一个线...