自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 收藏
  • 关注

原创 docker+jmeter实现windows作为主控机,linux作为负载机的分布式压测环境搭建

使用docker+jmeter实现以windows作为主控机,linux作为负载机的分布式压测环境搭建

2024-01-10 16:19:09 1367 1

原创 使用Docker+Jenkins+Gitee自动化部署Vue+ElementUI项目

百分百将vue项目打包成镜像部署在服务器上

2022-12-09 15:30:54 2254 2

原创 使用Docker+Jenkins+Gitee自动化部署SpringBoot项目

Docker+Jenkins+Gitee自动化部署SpringBoot后端服务,百分百成功!

2022-11-23 08:57:56 1584

原创 个人Docker学习记录

shell脚本一键生成docker基础开发环境

2022-10-21 10:22:05 508

原创 记录安装、配置并入门使用appium的过程

appium使用入门

2022-10-12 14:39:55 1535

原创 手把手教你给女朋友编写一个公众号定时推送(java版本)

写给女朋友的公众号定时推送

2022-08-30 16:16:00 2768 8

原创 关于学习鼓励商城微服务中Feign远程调用请求头丢失问题记录

单线程中Feign远程调用丢失请求头的情况代码案例订单服务:Controller: /** * 当在购物车服务选中商品并点击“去结算”时触发订单服务。 * 该controller主要用于返回订单结算详情等信息 * */@GetMapping("/toTrade") public String toTrade(Model model){ OrderConfirmVo orderConfirmVo = orderService.confirmO

2022-02-11 00:08:14 599

原创 POSTMAN自动化接口测试个人学习记录

PostMan一、常用的运行脚本二、变量的作用范围三、Pre-request Script四、Collection批量执行批量执行导入CSV文件进行数据参数化五、完整示例展示一、常用的运行脚本获取环境变量(针对不同测试环境,如正式环境、测试环境等)pm.environment.get("variable_key");获取全局变量(全局统一)pm.globals.get("variable_key");获取集合变量(针对各个请求所汇集成的集合体)pm.collectionVariables

2021-11-11 11:05:46 9129 1

原创 软件测试之自动化测试Selenium-java入门

软件测试之自动化测试Selenium-java入门Selenium在Java下的安装与使用常见的定位元素Selenium的一些基本用法鼠标事件键盘事件设置元素等待Selenium在Java下的安装与使用环境:JDK1.8IDE:IntelliJ IDEA 2021.2/Eclispe浏览器:Chrome第一步:下载Selenium,下载链接第二步:通过maven对jar进行管理,引入Selenium坐标。<dependencies> <dependency

2021-08-11 16:46:30 759

原创 Exception in thread “main“ java.lang.UnsupportedOperationException

2021-7-19bug记录问题描述:原因分析:解决方案:问题描述:定义了一个数组,然后通过使用Array.asList的方法将数组转化为集合。调用list.toString()方法能够输出当前集合内容。但是如果往该集合添加元素,会报错。具体错误为:list前========================>[aaa, vv, cc]Exception in thread "main" java.lang.UnsupportedOperationException at java.util.

2021-07-19 15:10:19 1499

原创 微服务进阶整合学习第三方应用篇--第三方接口的调用

微服务进阶整合学习第三方应用篇--第三方接口的调用分布式文件存储-阿里云OSS阿里云短信发送服务分布式文件存储-阿里云OSSJAVA SKD上传指南采用服务端签名后直传的方式,不将图片传给服务端,而是从服务端获取签名,绕过服务端直接上传到OSS阿里云服务器,具体实例操作如下:第一步,引入阿里云OSS上传坐标,配置上传所需的accesskey等信息:<dependency> <groupId>com.alibaba.cloud</groupId

2021-07-05 15:16:50 814

原创 微服务进阶学习整合高级篇--缓存与分布式锁

微服务进阶学习高级篇--缓存缓存的使用选择条件缓存中间件redis入门使用压力测试下的堆外溢出缓存的使用选择条件即时性、数据一致性要求不高的读的频率高,修改的频率少的缓存中间件redis入门使用引入redis坐标#这里注意springboot版本,springboot稍微旧一点的版本不需要加上-data-字样<dependency> <groupId>org.springframework.boot</groupId> <artif

2021-06-21 17:22:32 244

原创 微服务进阶整合学习高级篇--ElasticSearch

微服务进阶整合学习高级篇--谷粒商城搜索分析引擎ElasticSearchElasticSearch三大基本概念1. index-索引2. type-类型3. document-文档docker安装ElasticSearch1. 切换到管理员`su root`下载docker或者在命令前加上sudo2. `free -m`查看内存使用情况3. 创建目录供后续进行磁盘挂载4. 创建配置文件并写入数据5. 进行磁盘挂载6. 赋予EL权限7. 访问端口查看是否配置成功8. 安装启动kibana9. 访问kiban

2021-06-04 15:44:30 1000

原创 AngularJs前端基础个人学习总结

AngularJs1.数据绑定2.指令3.作用域Scope4.根作用域rootScope5.模块module6.控制器controller7.过滤器 |8.自定义过滤器9.服务service10.select选择框11.表格12.表单13.angularJs依赖注入1.数据绑定<!--ng-app属性声明所有被其包含的内容都属于这个AngularJS应用只有被具有ng-app属性的DOM元素包含的元素才会受AngularJS影响--><html ng-app><

2021-06-04 10:50:36 304 1

原创 微服务进阶整合学习基础篇--谷粒商城

微服务进阶整合学习--谷粒商城配置运行环境配置端口映射操作系统下安装docker配置docker镜像加速docker安装mysqldocker安装redis项目前准备配置maven环境配置运行环境安装虚拟机Vitural box安装Vagrant(我理解为虚拟机的管理工具,可以帮助我们管理虚拟机,有点类似于宝塔)安装完成之后,win+R启动命令提示行,输入vagrant,提示指令信息表明安装成功安装完重启电脑安装Linux环境,通过命令提示行,输入vagrant init centos/7安装

2021-06-01 14:30:41 542

原创 Redis的基本环境配置以及基本使用入门

文章目录Redis是什么Redis能做什么Redis是什么Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。Redis能做什么1、内存存储、持久化,内存中是断电即失、所以说持久化很重要( rdb、 aof )2、效率高,可以用于高速缓存3、发布订阅系统4、地图信息分析5、计时器、计数器(浏览量!)...

2020-12-09 16:48:03 1099

原创 Quartz---任务调度入门学习

文章目录一、什么是Quartz?二、Quartz的体系结构1、调度器:schedule2、触发器:Trigger3、任务:JobDetail三、Quartz一、什么是Quartz?Quartz是一个完全由java编写的开源作业调度框架,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的程序。二、Quartz的体系结构1、调度器:schedule2、触发器:Trigger3、任务:JobDetail三、Q

2020-11-30 17:42:54 251

原创 计算机组成原理简单复习总结--未完待续

文章目录一、计算机的网络的体系结构1、OSI的七层协议结构2、TCP/IP的四层协议结构3、OSI和TCP/IP的折中--五层协议架构应用层--直接为用户进程提供服务:运输层--负责向两个主机中进程之间的通信提供通用数据服务:网络层:数据链路层:物理层:4、三者具体对应关系一、计算机的网络的体系结构1、OSI的七层协议结构2、TCP/IP的四层协议结构3、OSI和TCP/IP的折中–五层协议架构应用层–直接为用户进程提供服务:1) DNS域名解析协议:解析域名对应的相关IP

2020-11-13 11:26:42 330 3

原创 JVM个人复习总结思维导图版(未完待续)

2020-10-31 00:35:26 212

原创 Spring思维导图个人复习汇总

2020-10-29 23:05:34 259

原创 Java常用集合复习汇总思维导图

总结就这么多啦,如果有错希望各位可以指点指点!!!

2020-10-29 18:01:14 287

原创 JVM-垃圾回收器的相关概述(不断补充完善)

文章目录1、GC垃圾回收器的分类1.1、按线程数量分1.2、按工作模式1.3、按碎片处理方式1.4、按工作空间划分二、评估垃圾回收器的主要指标3、七大经典垃圾回收器(重点)概述3.1、串行回收器3.1.1、Serial3.1.2、Serial Old3.2、并行回收器3.2.1、ParNew3.2.2、Parallel Scavenge3.2.2、Parallel Old3.3、并发回收器3.3.1、CMS3.3.2、G11、GC垃圾回收器的分类1.1、按线程数量分串行垃圾回收器同一个时间段内只

2020-10-28 23:29:37 184

原创 JVM-垃圾回收相关概念的补充与回顾

文章目录一、System.GC的理解二、内存溢出与内存泄漏1、内存泄漏2、内存溢出三、STW概念理解四、并行和并发1、程序中的并发和并行:2、垃圾回收中的并发和并行:五、安全点与安全区域1、安全点2、安全区一、System.GC的理解在默认情况下,通过System.gc()或者Runtime.getRuntime().gc()的调用,会显式触发Full GC,同时对老年代和新生代进行回收,但是这个执行情况确实不一定执行的,也就是说我调用了System.GC方法尝试主动进行垃圾回收,这个行为是不一定执行

2020-10-26 14:30:09 171

原创 JVM-垃圾回收算法复习总结(超详细版)

文章目录一、垃圾回收概述1、什么是垃圾?2、垃圾回收的主要区域?二、垃圾回收算法--标记阶段1、对象存活判断之--引用计数算法2、对象存活判断之--可达性分析(根搜索)算法3、对象的finalization机制(重点)三、垃圾回收算法--清除阶段1、对象回收之-标记清除算法2、对象回收之-复制算法3、对象回收之-标记压缩算法四、三种垃圾回收算法的小结五、分代收集算法六、增量收集算法和分区算法1、增量收集算法2、分区算法一、垃圾回收概述1、什么是垃圾?● 垃圾:指的是在运行中没有任何引用的对象(没有任

2020-10-25 16:39:15 276

原创 VUE基础知识点回顾

一、什么是VUE?Vue.js是一套构建用户界面的渐进式框架。与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计。Vue 的核心库只关注视图层。二、MVVM模式我们知道在后端的常见的架构模式是MVC模式,在前后端分离的时代,前端后端各司其职,前端三大热门框架之一的Vue的架构模式,采用的即是MVVM模式。M:Model层V:View层VM:ViewModel视图模型层,将View和Model进行双向绑定,实现了 DOM 监听,当 DOM 发生一些事件时(点击、滚动等),可以监听到

2020-10-25 01:21:54 464

原创 JVM-对象的实例化内存布局与访问定位

文章目录一、对象加载的六个步骤二、对象的内存布局三、对象的访问定位一、对象加载的六个步骤补充说明:在分配内存的时候到底是通过指针碰撞的方式还是通过空闲列表的方式分配内存,是由Java堆是否规整决定,而Java堆是否规整又由所采用的垃圾收集器是否带有压缩整理功能决定。关于类加载的具体流程可以看这一篇文章:类加载子系统二、对象的内存布局为了更好的了解对象,下面通过一段代码展示:customer类:public class customer { int id = 1001;

2020-10-23 18:01:59 194

原创 JVM-运行时数据区超详细版总结(不断更新完善)

一、运行时数据区初探上几个章节简单的总结了一下类加载器子系统,接下来继续学习JVM里面的运行时数据区。首先,我们来大体的看看运行时数据区处于整个JVM里面的位置。(不同的JVM对于内存的划分存在区别,这里选用的是HotSpot虚拟机)Class文件使用类加载子系统进行加载,经过load,link,initialize三个流程,加载完以后便在内存中的方法区存放了运行实类本身,接下来需要使用执行引擎将字节码指令解释/编译为对应平台上的本地机器指令,在运行时方法区都分成哪些部分呢?大家各司其职做什么事呢?

2020-10-23 14:24:45 421

原创 多线程进阶复习JUC并发编程

1、什么是JUC?JUC指的是全称叫java.util.concurrent包下的工具类。用中文概括一下,JUC的意思就是java并发编程工具包。其下包含三个最常用的并发编程的工具类:java.util.concurrent、java.util.concurrent.atomic、java.util.concurrent.locks。2、Lock锁2.1传统的使用synchronized锁的方式public class JUC { public static void main(Strin

2020-10-22 18:16:00 382

原创 JAVA里的各种锁概念的简单自我汇总

一、可重入锁可重入锁又叫递归锁,它的定义也很简单,就像它的字面意思一样,支持重新进入的锁,即:同一个线程在外层方法获取锁的时候,在进入内层方法会自动获取锁。如下代码所示:public class synchronizedLock{ public static void main(String[] args) { /** * 在调用方法sms的时候,phone对象上锁,同时方法内部也调用了call方法, * 此时call方法还是本身的锁,如

2020-10-22 18:14:53 184

原创 单例模式的五种写法

一、饿汉式单例饿汉式单例模式,实例对象在初始化的时候创建,不管有没有得到调用。好处是没有线程安全的问题,坏处是浪费内存空间。//饿汉式单例public class ehan { /** * 存在的问题: * 饿汉式强调的是一上来就初始化对象,初始化的对象里面又有很多像如下定义的很多数组同时也被初始化, * 但没有得到调用,就会存在浪费空间的情况 * */ private byte[] data1 = new byte[1024*1024];

2020-10-21 23:24:52 199

原创 JVM-代码优化之逃逸分析

1、逃逸分析观看堆空间分配策略前面的文章提到,实例化对象和数组基本都在堆上进行内存的分配,但也有一种例外,那就是如果经过逃逸分析后发现,一个对象并没有逃逸出方法的话,那么就可能被优化成栈上分配。这样就无需在堆上分配内存,也无须进行垃圾回收了。这也是最常见的堆外存储技术。逃逸分析的基本原则:1)一个对象在方法内被定义,对象只能在该方法中使用,没有被方法外调用,则认为它没发生逃逸。2)一个对象在方法内部被定义,但被方法外部引用,例如作为参数传递到其他地方,则认为他发生了逃逸。3)快速判断一个对象是否

2020-10-21 11:16:15 282

原创 多线程基础复习总结(吐血总结附代码版)

一、程序,进程,线程?程序:指令和数据的有序集合,其本身没有任何运行意义,是一个静态的概念。进程:程序的一次执行过程,是动态的概念,是系统资源分配的单位线程:一个进程有至少一个到多个线程,是CPU调度和执行的最小单位二、实现多线程的方法?1.继承Thread类、重写run方法、创建线程对象,调用start方法public class Thread1 extends Thread { public void run(){ //run方法线程体 for(

2020-10-13 16:54:33 302

原创 SpringBoot整合Shiro

为了方便理解以及使用Shiro,这里先贴上一份官方10分钟快速入门的QuickStart Java入门案例:/** * Simple Quickstart application showing how to use Shiro's API. * * @since 0.9 RC2 */public class Quickstart { private static final transient Logger log = LoggerFactory.getLogger(Quicksta

2020-10-12 15:50:55 208

原创 SpringBoot整合SpringSecurity

第一步、搭建SpringSecurity环境通过IDEA脚手架创建SpringBoot项目,我用的SpringBoot的版本是2.3.4的;然后maven导入相关依赖,因为是基本核心的功能演示,因此用到的依赖包不会很多,以下为我导入的依赖包:<!--thymeleaf模板引擎引入--> <dependency> <groupId>org.springframework.boot</groupId>

2020-10-11 12:28:17 223

原创 使用SpringBoot整合Mybatis的两种方式

第一种:常规的整合方式(以Mysql为例)先上我的文件目录,因为展示以整合为主,因此在这里没有严格按照controller-service-mapper分层第一步、导入相关依赖:<!--导入mybatis整合包--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-sprin

2020-10-02 20:28:24 430

原创 使用IDEA的SpringBoot整合Druid数据源

因为我们使用SpringBoot的时候默认的数据源是hikari数据源,但是可能在将来的工作里面并不是每个公司用的都是hikari数据源,假如说公司用的是Druid数据源,我们得手动更改数据源,具体步骤如下:第一步:导入对应jar包<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId>

2020-10-02 15:43:14 636

原创 JVM-类加载子系统-双亲委派机制

一、什么是双亲委派机制?首先我们得知道,JVM对class文件采用的是按需加载的方式进行加载,只有需要使用该类的时候才会把其class文件加载到内存中生成class对象,在这个加载的过程中,该类加载器首先把这个任务委托给他的上级类加载器,递归这个操作,直到顶级引导类启动器,如果父类加载器可以完成类的加载任务,就成功返回,如果无法完成,自己的加载器才会去加载这个类,这便是双亲委派机制。如图所示:代码演示:如下我们新建一个java.lang.String类(尝试覆盖默认核心api的String类),一个

2020-10-02 09:29:18 196

原创 使用IDEA的SpringBoot整合JDBC

这里不做过多介绍,直接上操作第一步、启动IDEA,通过Spring initializr创建该项目,点解next第二步、配置自己项目的相关信息即可,点击next下一步第三步、勾选相应的启动依赖在这里我只勾选了最基本的几个依赖进行展示,Sring Web和Web开发的一些依赖有关,MySQL Driver和连接数据库有关,还有就是我们这里要使用的Spring Data JDBC,点击next第四步、填写该项目名称,点击Finish,该项目建立成功第五步、我们去application.pro

2020-09-26 16:15:39 1091

原创 SpringBoot-员工管理系统-添加删除修改以及404错误处理

一、添加员工添加员工无非就如下几个步骤:1、添加员工按钮,在相应合适的地方加上按钮,具体页面就不展示了,只展示关键的部分<h2><a class="btn btn-sm btn-success" th:href="@{/emp}">添加员工</a></h2>2、跳转到添加页面–对应的controller@RequestMapping("/emps")//展示所有员工列表的操作 public String List(Model model)

2020-09-26 13:59:13 890 1

原创 JVM-类加载子系统-类加载器的分类

一、类加载器初探首先,JVM支持两种类型的加载器,分别为引导类加载器(BootstrapClassLoader)和自定义加载类加载器(User-DefinedClassLoader)。无论如何划分,程序中我们最常见的类加载器只有如下三种:(注意,这里的四者是包含关系,不是上下层关系,也不是子父类继承关系)但是从图中我们看到,除了引导类加载器之外,还有扩展类加载器,系统类加载器,才是我们的自定义类加载器,那么为什么说JVM支持两种类型的加载器呢?原因是因为从概念上讲,自定义类加载器一般指的是

2020-09-25 14:24:19 436

空空如也

空空如也

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

TA关注的人

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