自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(69)
  • 资源 (1)
  • 收藏
  • 关注

原创 ElasticSearch进阶:一文全览各种ES查询在Java中的实现

本文基于7.13.2版本,es从7.0以后,发生了很大的更新。7.3以后,已经不推荐使用TransportClient这个client,取而代之的是Java High Level REST Client。https://www.elastic.co/guide/en/elasticsearch/client/java-rest/7.3/java-rest-high.htmlSpringBoot集成ElasticSearchpom.xml:<dependency> <groupId

2021-10-30 17:17:15 4374 16

原创 深入Java线程池:从设计思想到源码解读

本文由浅入深,阐述下面4大内容,深入解读线程池1、线程池的优势2、线程池的原理3、线程池的使用4、线程池的源码解读

2021-03-02 09:29:35 23389 87

原创 Mysql索引:图文并茂,深入探究索引的原理和使用

关于Mysql索引的走心总结,建议收藏,反复阅读。

2020-11-25 16:43:44 11783 53

原创 Java8 Stream:2万字20个实例,玩转集合的筛选、归约、分组、聚合

Java8 Stream横空出世,让我们从繁琐冗长的迭代中解脱出来,集合数据操作变得优雅简洁。这些操作:集合的filter(筛选)、归约(reduce)、映射(map)、收集(collect)、统计(max、min、avg)等等,一行代码即可搞定!让我们一起敲打案例代码,搞定Java8 stream吧!

2020-11-09 13:52:52 90480 286

原创 【Java基础-3】吃透Java IO:字节流、字符流、缓冲流

什么是Java-IO?字符流和字节流的区别与适用场景是什么?缓冲流到底实现了什么?如何高效地读写文件?本文用大量的示例图和实例,带你吃透Java IO。

2020-09-23 20:12:33 47077 128

原创 【SpringBoot-3】切面AOP实现权限校验:实例演示与注解全解

何为AOP,AOP的注解详解,AOP的使用详例,以上内容尽在本文

2019-10-26 16:34:47 43025 188

原创 【测试开发-1】基于Springboot+layui实现接口自动化平台

测试平台之接口自动化1 简介1.1 技术栈1.2 特点2 详述2.1 平台入口2.2 分级设计2.2.1 项目管理2.2.2 接口列表2.2.3 用例管理2.2.4 测试集合2.2.5 测试结果1 简介1.1 技术栈后端:SpringBoot + Mybatis前端:jQuery + layui1.2 特点极致简洁:页面简洁,交互方便,易于上手数据管理:可视化数据管理,数据的添...

2019-09-06 16:11:41 15784 22

原创 【前端系列-2】layui+springboot实现表格增删改查

前文演示了如何后端数据渲染在前端表格,接下来本文将演示如何在前端增加、删除和编辑数据。本文使用的是通过按钮点击事件弹出

2019-07-27 18:10:03 16498 16

原创 ElasticSearch基础:从倒排索引说起,快速认知ES

下载下载地址:https://www.elastic.co/cn/downloads/elasticsearch安装:1、将压缩包上传到linux服务器2、解压压缩包:tar -zxvf elasticsearch-7.13.2-linux-x86_64.tar.gzes 目录介绍bin:可执行文件在里面,运行es的命令就在这个里面,包含了一些脚本文件等config:配置文件目录JDK:java环境lib:依赖的jar,类库logs:日志文件modules:es相关的模块plug

2021-10-30 17:15:03 1833 1

转载 Redis分布式锁,你用对了吗?

本文转自 微信公众号:牛牛码特今天我们就来聊聊分布式锁。1 分布式锁是什么我们的手机有锁、车有锁、家门有锁、贵重物品会锁进保险箱。可以说,锁在我们生活中无处不在,时刻保护着我们的人身财产安全。在计算机领域也一样,锁可以理解为针对某项资源使用权限的管理,它通常用来控制共享资源,比如一个进程内有多个线程竞争一个数据的使用权限,解决方式之一就是加锁。那分布式锁是什么呢?顾名思义,分布式锁就是分布式场景下的锁,比如多台不同机器上的进程,去竞争同一项资源,就是分布式锁。2 分布式锁有哪些特性?具备哪些

2021-09-30 17:41:28 277

转载 拜托!面试请不要再问我Spring Cloud底层原理

概述毫无疑问,Spring Cloud是目前微服务架构领域的翘楚,无数的书籍博客都在讲解这个技术。不过大多数讲解还停留在对Spring Cloud功能使用的层面,其底层的很多原理,很多人可能并不知晓。因此本文将通过大量的手绘图,给大家谈谈Spring Cloud微服务架构的底层原理。实际上,Spring Cloud是一个全家桶式的技术栈,包含了很多组件。本文先从其最核心的几个组件入手,来剖析一下其底层的工作原理。也就是Eureka、Ribbon、Feign、Hystrix、Zuul这几个组件。1 业务

2021-01-30 15:10:07 1888 10

原创 【Java基础-1】从JDK配置到第一个程序

前言王国维在《人间词话》中说:“古今之成大事业、大学问者,必经过三种之境界:‘昨夜西风凋碧树。独上高楼,望尽天涯路’。此第一境也。‘衣带渐宽终不悔,为伊消得人憔悴。’此第二境也。‘众里寻他千百度,蓦然回首,那人却在,灯火阑珊处’。此第三境也。”独上高楼,忍受无法言说的孤独。望尽天涯,苦寻难以捉摸的前路。这些人,我称之为觉醒者!相对于浑浑噩噩的大多数人,他们的目光已然超脱眼前的灯红酒绿,开始投向苍茫未知的远方。学习的第一个境界,就是要直面迷茫,拨开迷雾,立下自己清晰的志向。衣带渐宽终不悔,为伊消得人

2020-10-24 22:31:22 2205 1

原创 SpringBoot-3:集成SLF4J+logback进行日志记录

SLF4J+logback进行日志记录1 yml配置文件2 logback.xml常用配置详解2.1 根节点(configuration)2.1.1 读取配置文件:springProperty2.1.2 设置上下文名称:contextName2.1.3 设置变量:property2.2 appender节点2.2.1 控制台输出2.2.1 rollingPolicy2.2.2 filter2.3 ...

2020-09-01 21:09:01 15191 11

原创 JMeter参数化4种实现方式

前言下面是目前JMeter系列已有博文列表,持续更新中:JMeter安装与接口测试入门JMeter接口测试之断言实现JMeter逻辑控制器JMeter配置元件JMeter操作Mysql数据库BeanShell Sampler与BeanShell断言JMeter Linux下执行测试JMeter自定义日志与日志分析1 参数化释义什么是参数化?从字面上去理解的话,就是事先准备好数据(广义上来说,可以是具体的数据值,也可以是数据生成规则),而非在脚本中写死,脚本执行时从准备好的数据中

2020-08-26 21:09:44 8055 3

原创 JMeter接口测试之断言实现

前言下面是目前已有的博文列表,持续更新中:JMeter安装与接口测试入门JMeter逻辑控制器JMeter配置元件JMeter操作Mysql数据库BeanShell Sampler与BeanShell断言JMeter Linux下执行测试JMeter自定义日志与日志分析断言是什么什么是断言?在接口测试中,我们预设接口响应结果中会出现一个片段,我们称之为预期值,断言会在接口调用后尝试捕捉这个预期值,如果能捕捉到,则判定接口成功,否则判定接口为失败。为什么需要断言?因为JMeter

2020-08-26 10:49:54 6752 8

原创 JMeter安装与接口测试入门

安装环境配置1、JDK版本:JDK1.8及以上;2、操作系统:JMeter可以在当前任何一个已经部署了Java的操作系统上运行,Unix(Solaris,Linux,etc)、 Windows(98,NT,2000,XP,WIN7)、Open VMS Alpha 7.3+JDK安装与配置1、jdk安装:在官网下载jdk1.8版本压缩包,解压到指定文件夹即可。2、环境变量配置1)右键点击...

2020-08-24 14:39:02 20816 12

原创 【Mysql进阶-3】大量实例悟透EXPLAIN与慢查询

SET FOREIGN_KEY_CHECKS=0;-- ------------------------------ Table structure for student-- ----------------------------DROP TABLE IF EXISTS `student`;CREATE TABLE `student` ( `id` int(11) NOT NULL, `name` varchar(25) DEFAULT NULL, `create_time` d

2020-08-20 19:47:57 2449 3

原创 【Mysql-3】条件判断函数-CASE WHEN、IF、IFNULL详解

将null转为0在Java程序中调用sql语句时,如果返回结果是null,是非常容易引发程序抛出空指针异常的。单字段结果由null转01、普通sql:// 返回结果:nullSELECT price FROM goods WHERE name='light';2、IFNULL包含单个字段:// 返回结果:0SELECT IFNULL(price,0) price FROM g...

2020-07-19 16:41:07 13779 1

原创 JMeter websocket接口测试

jetty-httpjetty-iojetty-utilwebsocket-apiwebsocket-clientwebsocket-common相关依赖下载:链接:https://pan.baidu.com/s/1PTOyTBzmOwLPNhxB-TxR7g提取码:uq25将相关jar包放入JMeter安装目录的/lib/etc中,重启JMeter。页面内填写:...

2020-07-17 10:33:34 3252

原创 【Mysql学习之旅-2】经典sql面试题及答案分析

首先,数据初始化,让我们继续玩坏倚天屠龙的江湖:1、学生表 student(s_id:学生id,s_name:学生姓名,s_birth:学生生日,s_sex:学生性别):2、教师表teacher(t_id:教师id,t_name:教师姓名)3、课程表 course(c_id:课程id,c_name:课程名称,t_id:教师id):3、成绩表 score(s_id:学生id,c_id:课程id,score:分数)初始化数据的sql附在文章末尾题目开始。1、查询及格学生(每门课程的分数&g

2020-06-25 11:25:30 3392 1

原创 【前端系列-4】layui表格集成select选择框和switch开关
原力计划

前言在前文 layui表格使用自定义模板templet中,我们已经初步感受了layui表格使用自定义模板的基础操作。现在,在自定义模块应用的基础上,我们进一步丰富layui表格对其他组件的集成。觉得本文有所帮助的朋友们,请不吝点出你的赞。layui表格中集成select下拉选择框和switch开关 效果图如下:本文中,表格将完全使用静态数据渲染,数据如下:[ { "id": 1, "name": "iPhone", "type": 0, "price": 6000.0, "

2020-06-07 10:46:20 3650 2

原创 【MyBatis-4】MyBatis批量insert、update、delete数据
原力计划

前言在日常开发中,批量操作数据库数据是常见场景,比如批量插入、批量修改、批量删除数据。MyBatis为批量操作数据提供了非常便利的方案。当然,也可以在程序中自己拼接sql语句,在dao层传入该sql语句作为参数。要注意的是,采用这种方式时,不能使用 # 而是要使用 $。批量操作需要使用到比较复杂的标签,所以都在 xml 中实现。需要注意的是,数据库配置中要将allowMultiQueries置为true,例如:jdbc-url: jdbc:mysql://localhost:3306?useUni

2020-06-02 22:23:52 2670 1

原创 【UI自动化-3】UI自动化元素操作专题
原力计划

前言此处配图基本操作元素的基本操作有很多,常用的有三个:click(点击)、clear(清空)、sendkeys(输入内容)、submit(提交)。何为基本操作,即这些方法在WebElement接口类中定义,通过实例化的WebElement直接调用。void click():单击目标元素。void submit():提交当前form(表单)内容到远程服务器,注意是特定于表单元素而言的。...

2020-05-07 19:19:25 3269

原创 【UI自动化-2】UI自动化元素定位专题

前言UI自动化的学习,个人认为应该分五步走:环境搭建、元素定位、特殊场景处理、框架设计与搭建、测试平台开发。第一步的环境搭建其实没什么难度,都是固定的套路。今天就来到了第二步的元素定位,可以说元素定位是整个UI自动化的基本功。我查阅了大量的资料,在动手实践的基础上,整理总结了此文。众所周知,Selenium提供了8种定位方式:id:根据id定位,是最常用的定位方式,因为id具有唯一性,定...

2020-05-07 19:16:18 3431

原创 maven的安装与使用

前言Maven 是 Apache 下的一个纯 Java 开发的开源项目。基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理。下载与安装maven官网:http://maven.apache.org/download.htmlmaven的安装非常简单:将下载...

2020-04-05 15:14:08 3090

原创 【UI自动化-1】UI自动化环境搭建与简单示例

chrome驱动下载地址:http://chromedriver.storage.googleapis.com/index.html

2020-04-05 13:31:27 3118

原创 安卓模拟器修改hosts文件

前言在最近的【域名不可用降级方案】测试中,遇到了需要将一个域名指向一个无效IP的需求,即:192.168.112.11 www.test.com要实现这个需求,除了在服务端进行修改域名的IP配置之外,在客户端也有两个我能想到的实现方法。**方法1:**修改pc端的hosts文件(本地hosts配置优先级最高),并使手机或模拟器走pc端的代理(借助Charles等代理工具),使用方法详...

2020-03-31 19:50:20 3729

原创 非常好用的抓包工具:Charles使用详解

Charles使用详解1 安装2 开启手机代理2.1 开启代理步骤2.2 抓包页面2.3 https请求3 弱网测试Charles是一款非常优秀的代理工具,能帮助我们完成抓包、弱网测试等工作。其本身操作并没有很复杂之处,这里对Charles的诸多操作做一下整理和记录,作为操作手册以备忘。整理的内容只是Charles的一部分功能,后续会随时进行补充。1 安装charles官方下载地址:(很奇怪...

2020-03-31 16:52:41 3484 1

原创 【Java多线程-3】Future与FutureTask

Future与FutureTask浅析FutureFuture简介Future使用示例FutureTaskFutureTask简介FutureTask使用示例前文中我们讲述了创建线程的2种方式:直接继承Thread和实现Runnable接口,但这两种方式在执行完任务之后都无法获取执行结果。自从Java 5开始,JDK提供了Callable和Future,解决了上述问题,通过它们可以在任务执行完...

2020-03-31 15:45:16 2792

原创 【Java多线程-4】CompletionService详解

CompletionService是一个接口,该接口只有一个实现类 ExecutorCompletionService,该类使用创建时提供的 Executor 对象(通常是线程池)来执行任务,然后将结果放入一个阻塞队列中。// Linkedblockingqueue作为任务完成队列ExecutorCompletionService(Executor executor) // 将所提...

2020-03-31 15:43:41 2862

原创 【Java多线程-5】 CompletableFuture详解

CompletableFuture详解1 创建对象2 结果处理3 结果转换3.1 thenApply3.2 thenCompose4 结果消费4.1 thenAccept4.2 thenAcceptBoth4.3 thenRun5 结果组合6 任务交互6.1 applyToEither6.2 acceptEither6.3 runAfterEither6.4 runAfterBoth6.5 any...

2020-03-31 15:42:46 2866

原创 【Java多线程-7】阅尽Java千般锁

前文描述了Java多线程编程,多线程的方式提高了系统资源利用和程序效率,但多个线程同时处理共享的数据时,就将面临线程安全的问题。例如,下面模拟这样一个场景:一个售票处有3个售票员,出售20张票。public class SellTickets { public static void main(String[] args) { TicketSeller seller1 ...

2020-03-31 15:40:46 3103

原创 【Java多线程-6】synchronized同步锁

synchronizedsynchronized 原理概述操作系统层面JVM层面2 synchronized 使用参考资料前文描述了Java多线程编程,多线程的方式提高了系统资源利用和程序效率,但多个线程同时处理共享的数据时,就将面临线程安全的问题。例如,下面模拟这样一个场景:一个售票处有3个售票员,出售20张票。public class SellTickets { public s...

2020-03-31 15:35:49 3415 3

原创 【Java多线程-2】Java线程池详解

java.uitl.concurrent.ThreadPoolExecutor类是线程池中最核心的一个类,因此如果要透彻地了解Java中的线程池,必须先了解这个类。1 ThreadPoolExecutor概述1.1 构造方法在ThreadPoolExecutor类中提供了四个构造方法:public class ThreadPoolExecutor extends AbstractExecu...

2020-03-31 15:34:13 3221 2

原创 JMeter常用内置对象:vars、ctx、prev

在前文 Beanshell Sampler 与 Beanshell 断言 中,初步阐述了JMeter beanshell的使用,接下来归集整理了JMeter beanshell 中常用的内置对象及其使用。1 varsvars API:http://jmeter.apache.org/api/org/apache/jmeter/threads/JMeterVariables.htmlv...

2020-03-31 15:32:41 5312 3

原创 【SpringBoot-3】Lombok使用详解

Lombok使用详解Lombok简介Lombok安装Lombak使用@Data@Setter&@Getter@Builder@NonNull@Log4j@AllArgsConstructor@NoArgsConstructor@EqualsAndHashCode@RequiredArgsConstructor@Cleanup@ToString@Value@SneakyThrows@Sync...

2020-03-31 15:31:39 3108

原创 [Mysql-2] 远程连接数据库错误:host 'xxx.xxx' is blocked because of many connection errors

测试平台突然接口全部报错,赶紧查看日志:com.github.pagehelper.PageException: java.sql.SQLException: null, message from server: "Host 'xxx.xxx.xxx.xx' is blocked because of many connection errors; unblock with 'mysqladm...

2020-03-31 15:06:19 2757

原创 【Java多线程-1】线程概述与线程创建和使用

说到程序,离不开进程和线程这两个概念。那么这两者分别有什么作用和区别呢?1 线程概述进程是表示资源分配的基本单位,又是调度运行的基本单位。例如,用户运行自己的程序,系统就创建一个进程,并为它分配资源,包括各种表格、内存空间、磁盘空间、I/O设备等。然后,把该进程放人进程的就绪队列。进程调度程序选中它,为它分配CPU以及其它有关资源,该进程才真正运行。所以,进程是系统中的并发执行的单位。如下图所...

2019-11-02 18:50:12 11474

原创 内存篇:JVM内存结构

Java8相对之前的版本,JVM结构发生了较大的变化,取消了永久代,新增了元空间,同时,元空间不再与堆连续,而且是存在于本地内存(Native memory)。下面,以Java8为例,对JVM结构做一番总结。JVM内存结构1 JVM结构详解1.1 堆(Heap)1.2 方法区(Method Area)1.3 程序计数器(Program Counter Register)1.4 虚拟机栈(JVM ...

2019-11-01 20:52:01 11680

原创 【SpringBoot注解-1】:常见注解总览

系统注解@SpringBootApplication:声明SpringBoot自动给程序必要的配置,该注解等价于@Configuration ,@EnableAutoConfiguration 和 @ComponentScan 三个注解。@EnableAutoConfiguration:SpringBoot自动配置,根据项目添加的jar依赖自动配置Spring应用。@ComponentSc...

2019-10-26 17:48:46 11976 1

性能测试、自动化测试总结

性能测试、自动化测试精心总结,包括压力测试理论方法、压测工具使用、压测方案设计、压测脚本开发等

2019-01-31

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除