编辑
2023-02-21
实用工具
00

介绍

postman是一款支持http协议的接口调试与测试工具,其主要特点就是功能强大,使用简单且易用性好。

无论是开发人员进行接口调试,还是测试人员做接口测试,postman都是我们的首选工具之一 。

那么接下来就介绍下postman到底有哪些功能,它们分别都能干些什么 。下面先通过一张图来直观的来看下postman中所包含的功能。

功能

基础功能

  • 常见类型的接口请求
  • 接口响应数据的解析
  • 接口管理(Collection)
  • 批量执行接口请求
  • 日志调试
  • 断言
  • 变量
  • 请求前置脚本
  • 接口关联
  • 常见的返回值获取

便捷功能

  • 速填写查询参数
  • 快速填写请求头信息
  • 快速实现添加一个请求
  • 如何继承集合认证
  • 批量断言
  • 快速查询和替换

高级功能

  • 读取文件进行参数化
  • 生成测试报告
  • 代码中发送请求
  • 编写接口文档
  • mock服务
  • 监控
  • 使用工作空间
  • 代码同步与分支管理
  • 连接数据库
  • apis

安装

官网下载地址,根据自己的要求选择合适的版本进行安装

使用

简单使用

首先先看接口形参,已经请求类型
java
@PostMapping("/getCatalogResultList") public Result<IPage<CatalogResultResponse>> getCatalogResultList(@RequestBody CatalogResultRequest request){ IPage<CatalogResultResponse> catalogResultResponseIPage= iMrhpHomeService.getCatalogResultList(request); if(catalogResultResponseIPage==null) throw new BusinessException(ResultCodeEnum.ERR_0x1004); return Result.success(catalogResultResponseIPage); }

得知这个接口是post请求,而且接口是一个对象,那么就开始测试了

image.png

如果需要测试excel下载的话,只需要点击发送并下载即可 以上是针对接口没有请求的 如果有请求就需要在请求头里修改Content-Type

下载接口有请求设置

取消勾选自带的Content-Type 添加一个新的Content-Type 内容为application/json,点击发送下载即可

编辑
2023-02-21
实用工具
00

介绍

Redis就是个能够将信息\数据保存在内存中的缓存数据库

Redis是一个使用ANSI C编写的开源、支持网络、基于内存、可选持久性的键值对存储数据库。目前Redis的开发由Redis Labs赞助。根据月度排行网站DB-Engines.com的数据,Redis是最流行的键值对存储数据库。

Redis的特征

  • Redis是个内存(缓存)数据库,因为数据保存在内存中,所以速度快每秒执行10万次读写操作

  • 虽然Redis是一个内存数据库,但是它允许将数据保存在硬盘上,以便出现运行异常时恢复(Redis数据保存到硬盘上的策略有两种AOF和RDB可同时开启)

  • Redis保存数据使用key-value的格式,类似java中的Map类型集合

    这样使用key-value保存数据的数据库统称为"非关系型数据库" 英文"no-sql"

  • Redis的value支持各种类型 string,list,set,zset,hash

  • Redis支持微服务系统需要的分布式部署,支持master-slave(一主多从)的模式,以达到"高并发,高可用,高性能"的目的

目的:

解决缓存冗余,避免造成内存浪费,服务器直接从Redis中获取 节省内存,提高服务器性能

下载安装

官网下载地址,选择合适的版本,下载解压安装,运行redis-server.exe ,即可启动,redis可视化管理功能下载

编辑
2023-02-20
学习记录
00

1. 简介🍠

WebMvcConfigurer配置类其实是Spring内部的一种配置方式,采用JavaBean的形式来代替传统的xml配置文件形式进行针对框架个性化定制,可以自定义一些Handler,Interceptor,ViewResolver,MessageConverter。基于java-based方式的spring mvc配置,需要创建一个配置类并实现WebMvcConfigurer接口;

在Spring Boot 1.5版本都是靠重写WebMvcConfigurerAdapter的方法来添加自定义拦截器,消息转换器等。SpringBoot 2.0 后,该类被标记为@Deprecated(弃用)。官方推荐直接实现WebMvcConfigurer或者直接继承WebMvcConfigurationSupport,方式一实现WebMvcConfigurer接口(推荐),方式二继承WebMvcConfigurationSupport类。

2. WebMvcConfigurer接口

public interface WebMvcConfigurer { void configurePathMatch(PathMatchConfigurer var1); void configureContentNegotiation(ContentNegotiationConfigurer var1); void configureAsyncSupport(AsyncSupportConfigurer var1); void configureDefaultServletHandling(DefaultServletHandlerConfigurer var1); void addFormatters(FormatterRegistry var1); void addInterceptors(InterceptorRegistry var1); void addResourceHandlers(ResourceHandlerRegistry var1); void addCorsMappings(CorsRegistry var1); void addViewControllers(ViewControllerRegistry var1); void configureViewResolvers(ViewResolverRegistry var1); void addArgumentResolvers(List<HandlerMethodArgumentResolver> var1); void addReturnValueHandlers(List<HandlerMethodReturnValueHandler> var1); void configureMessageConverters(List<HttpMessageConverter<?>> var1); void extendMessageConverters(List<HttpMessageConverter<?>> var1); void configureHandlerExceptionResolvers(List<HandlerExceptionResolver> var1); void extendHandlerExceptionResolvers(List<HandlerExceptionResolver> var1); Validator getValidator(); MessageCodesResolver getMessageCodesResolver(); }
编辑
2023-02-20
实用工具
00

开发常用

快捷键组合实现效果
psvm + Tab键 / main + Tab键public static void main(String[] args)
sout + Tab键System.out.println()
Ctrl + X删除当前行
Ctrl +D复制当前行
Alt+Insert(或右键Generate)生成代码(如get,set方法,构造函数等)
Ctrl+Alt+T生成try catch (或者 Alt+enter选择)
CTRL+ALT+T把选中的代码放在 TRY{} IF{} ELSE{} 里
Ctr+shift+U实现大小写之间的转化
ALT+回车导入包,自动修正
CTRL+ALT+L格式化代码
CTRL+ALT+I自动缩进
CTRL+E最近更改的代码
fori生成for (int i = 0; i < ; i++) {}
Alt + <–左右–>键实现窗口左右更换(多窗口)
Ctrl + 鼠标点击快速找到成员变量的出处
Shift+F6重构/重命名 (包、类、方法、变量、甚至注释等)
CTRL+Q查看当前方法的声明
Ctrl+Alt+V自动创建变量(new 对象();之后选择按快捷键)
Ctrl+O重写方法
Ctrl+I实现方法
ALT+/代码提示
Ctrl+Shift+R在当前项目中替换指定内容
Ctrl+E最近编辑的文件列表
Ctrl+P显示方法参数信息
Ctrl+Shift+Insert查看历史复制记录,idea可以保留历史复制的 100 条记录
编辑
2023-02-17
实用工具
00

简介 🌽

Lombok 是一款好用顺手的工具,就像 Google Guava 一样。可用来帮助开发人员消除 Java 的冗长代码,尤其是对于简单的 Java 对象(POJO)。它通过注释实现这一目的。

通过在开发环境中实现 Lombok,开发人员可以节省构建诸如hashCode()和equals()这样的方法以及以往用来分类各种 accessor 和 mutator 的大量时间。

使用

idea插件市场搜索lombok,安装lombok插件 maven中引入lombok

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

最简单使用就是在对象上使用@Data,就可以自动生成get、set方法

Lombok 注解大全说明

注解含义
val使用val注解可以取代任意类型作为局部变量,这样我们就不用写复杂的ArrayList和Map.Entry类型了
@NonNull给方法参数增加这个注解,会自动在方法内对该参数进行是否为空的校验,如果为空,则抛出 NPE(NullPointerException)
@Cleanup自动管理资源,用在局部变量之前,在当前变量范围内即将执行完毕退出之前会自动清理资源,自动生成 try-finally 这样的代码来关闭流
@Getter/@Setter用在属性上,再也不用自己手写 setter 和 getter 方法了,还可以指定访问范围
@ToString用在类上,可以自动覆写 toString 方法,当然还可以加其他参数,例如@ToString(exclude=”id”)排除 id 属性,或者@ToString(callSuper=true, includeFieldNames=true)调用父类的 toString 方法,包含所有属性
@EqualsAndHashCode用在类上,自动生成 equals 方法和 hashCode 方法
@NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor用在类上,自动生成无参构造和使用所有参数的构造函数以及把所有@NonNull 属性作为参数的构造函数,如果指定 staticName = “of”参数,同时还会生成一个返回类对象的静态工厂方法,比使用构造函数方便很多
@Data注解在类上,相当于同时使用了@ToString、@EqualsAndHashCod- e、@Getter、@Setter 和@RequiredArgsConstrutor 这些注解,对于 POJO 类十分有用
@Value用在类上,是@Data 的不可变形式,相当于为属性添加 final 声明,只提供 getter 方法,而不提供 setter 方法
@Builder用在类、构造器、方法上,为你提供复杂的 builder APIs,让你可以像如下方式一样调用 Person.builder().name("Adam Savage").city("San Francisco").job("Mythbusters").job("Unchained Reaction").build();更多说明参考 Builder
@SneakyThrows自动抛受检异常,而无需显式在方法上使用 throws 语句
@Synchronized用在方法上,将方法声明为同步的,并自动加锁,而锁对象是一个私有的属性 或LOCK,而 java 中的 synchronized 关键字锁对象是 this,锁在 this 或者自己的类对象上存在副作用,就是你不能阻止非受控代码去锁 this 或者类对象,这可能会导致竞争条件或者其它线程错误
@Getter(lazy=true)可以替代经典的 Double Check Lock 样板代码
@Accessors(chain = true)加上参数以后就可以开启链式编程
@Log根据不同的注解生成不同类型的 log 对象,但是实例名称都是 log,有六种可选实现类
@CommonsLogCreates log = org.apache.commons.logging.LogFactory.getLog(LogExample.class);
@LogCreates log = java.util.logging.Logger.getLogger(LogExample.class.getName());
@Log4jCreates log = org.apache.log4j.Logger.getLogger(LogExample.class);
@Log4j2Creates log = org.apache.logging.log4j.LogManager.getLogger(LogExample.class);
@Slf4jCreates log = org.slf4j.LoggerFactory.getLogger(LogExample.class);
@XSlf4jCreates log = org.slf4j.ext.XLoggerFactory.getXLogger(LogExample.class);