自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

欢迎来到chaizhibin的博客

生命是一种通过性传播的疾病,死亡率为百分之百。

  • 博客(25)
  • 收藏
  • 关注

原创 mysql的事物以及锁原理

1、事务我们把同时满足原子性、一致性、隔离行、持久性的一个或者多个数据库操作称为一个事务。1.2、事务的使用1.2.1、BEGIN;BEGIN语句就代表开启一个事务。mysql> BEGIN;Query OK, 0 rows affected (0.00 sec)mysql> sql...1.2.2、START TRANSACTION与BEGIN一样,都表示开启一个事务mysql> START TRANSACTION;Query OK, 0 rows affect

2021-03-22 16:52:34 195

原创 深入理解oauth2框架,以及实际运用

1、什么是单点登录1.1、多点登录传统的多点登录系统中,每个站点都实现了本站专用的帐号数据库和登录模块。各站点的登录状态相互不认可,各站点需要逐一手工登录。如下图,有两个术语含义如下:认证(authentication): 验证用户的身份;授权(authorization): 验证用户的访问权限1.2、单点登录多个站点(192.168.1.20X)共用一台认证授权服务器(192.168.1.110,用户数据库和认证授权模块共用)。用户经由其中任何一个站点(比如 192.168.1.201)

2021-03-15 09:47:34 1897

原创 mysql的Explain关键字详解、以及查询优化分析

1、explainexplain关键字用于查看sql语句的执行计划、有没有上索引、没有有做全标扫描等,expain查询的信息有10列,分别是id、select_type、table、type、possible_keys、key、key_len、ref、rows、Extraid:选择标识符,id越大,查询的优先级越高。id相同,则查询从上往下执行。select_type:表示查询的类型。查询的类型有SIMPLE(简单查询,不使用uniton或者自查询)、PRIMARY(子查询中最外层查询,查询中若包

2021-03-08 14:37:57 338 1

原创 mysql数据库的innoDb行格式、数据页结构以及索引底层原理分析

1、mysql的架构图2、InnoDb的数据页结构页是InnoDB管理存储空间的基本单位,一个页的大小默认是16KB。2.1、页结构2.2、InnoDb行格式一行记录可以以不同的格式存在InnoDB中,行格式分别是Compact、Redundant、Dynamic和Compressed行格式。我们可以在创建或修改表的语句中指定行格式:CREATE TABLE 表名 (列的信息) ROW_FORMAT=行格式名称ALTER TABLE 表名 ROW_FORMAT=行格式名称2.2.

2021-03-08 11:28:28 276 3

原创 谈谈我对ScheduledExecutorService的理解

1、背景 /** * 异步操作任务调度线程池 */ private ScheduledExecutorService executor = SpringUtils.getBean("scheduledExecutorService"); public void execute(TimerTask task) { executor.schedule(task, OPERATE_DELAY_TIME, TimeUnit.MILLISECON

2021-03-03 16:06:04 578 2

翻译 校验参数这么写才足够优雅

为什么要用validator javax.validation的一系列注解可以帮我们完成参数校验,免去繁琐的串行校验 不然我们的代码就像下面这样: //http://localhost:8080/api/user/save/serial/***走串行校验**@paramuserVO*@return*/@PostMapping("/save/serial")publicObjectsa...

2021-03-02 15:06:35 240

原创 深入了解ZooKeeper概念,安装、部署集群、基本操作

Zookeeper介绍Apache ZooKeeper 是Apache软件基金会的一个软件项目,它为大型的分布式计算提供了开源的分布式配置服务、同步服务、命名注册等,ZooKeeper曾经是Hadoop的一个子项目,现在已经是一个独立的顶级项目。1、下载与安装开源软件,自行官网下载1.1、解压1.2、配置进入conf文件夹,找到zoo_sample.cfg文件,命名为zoo.cfg1.3、配置文件介绍tickTime:ZooKeeper的服务器和客户端之间维持心跳的间隔,每一个tick

2021-01-07 19:49:16 163 2

原创 Docker生成镜像的两种方式(Dockerfile的介绍、以及基本使用)

Docker生成镜像的两种方式有时候从Docker镜像仓库中下载的镜像不能满足要求,我们可以基于一个基础镜像构建一个自己的镜像两种方式:更新镜像:使用 docker commit 命令构建镜像:使用 docker build 命令,需要创建Dockerfile文件1、更新镜像先使用基础镜像创建一个容器,然后对容器内容进行更改,然后使用 docker commit 命令提交为一个新的镜像(以tomcat为例)。1.1、根据基础镜像,创建容器docker run --name mytomca

2021-01-04 15:19:27 772

原创 深入了解Docker、安装部署、基本操作、实例(二)

Docker常用的操作输入 docker 可以查看Docker的命令用法,输入 docker COMMAND --help 查看指定命令详细用法。镜像常用的操作查找镜像docker search 关键词 #搜索docker hub网站镜像的详细信息下载镜像docker pull 镜像名:TAG # Tag表示版本,有些镜像的版本显示latest,为最新版本查看镜像docker images # 查看本地所有镜像删除镜像docker rmi -f 镜像ID或者镜像名:TAG # 删

2021-01-04 14:24:13 92

原创 深入了解Docker、安装部署、基本操作、实例(一)

目录简介Docker 优点Docker 架构Host(docker的宿主机)Docker daemon(Docker 守护进程)images(镜像)Containers(容器)Docker ClientRegistry(仓库服务注册)Docker 安装操作系统要求一、准备二、安装三、配置镜像加速未完待续背景1、开发和运维之间因环境不同而导致的矛盾2、集群环境中每台及其都部署相同的应用简介Docker是一个开源的应用容器引擎,让.

2021-01-04 12:49:41 375

原创 Springboot项目中使用activiti7.0版本

1.0、为什么使用工作流框架日常的开发中,我们会遇见一些比较恶心的审批流程。又或者是面对不同的业务场景,流程使用的场景不固定。又或者审批的流程不确定,比如一些政府单位,响应国家政策新增一个什么岗位,我们的流程审批必须经过此岗位。这里就体现出将工作流和实际的业务进行业务分离的必要性,所以引入BPM框架是很有必要必要的。1.1、介绍activiti官网地址,直接去官网看吧,可能有点卡(国外的网站可能有点卡)2.0、Sringboot项目中集成activiti2.1、pom中加入依赖<depe

2020-12-11 17:52:34 3745 1

原创 浅谈HTTP长连接和短连接

HTTP的长连接和短连接1.0、以前的误解很久之前就听说过长连接的说法,而且还知道HTTP1.0协议不支持长连接,从HTTP1.1协议以后,连接默认都是长连接。但终究觉得对于长连接一直懵懵懂懂的,有种抓不到关键点的感觉。今天通过一番研究,终于明白了这其中的奥秘。而之前,也看过长连接相关的内容,但一直都是云里雾里的。这次之所以能在这么短的时间里搞清楚,和自己技术的沉淀密不可分。因此,这里借着这个机会,再次强调一下,千万不要试图去研究你研究了很久都整不明白的东西,或许是你的层次不到,也或许是你从未在实际的

2020-12-10 18:18:37 217

转载 Java中对Volatile关键字的介绍

1、基本概念1.1、此处补充一些java内存模型的概念可见性:线程之间的可见性,一个线程修改的状态对另一个线程是可见的。比如:用volatile修饰的变量,就会有可见性。但是这里需要注意一个问题,volatile只能让被他修饰内容具有可见性,但不能保证它具有原子性。比如 volatile int a = 0;之后有一个操作 a++;这个变量a具有可见性,但是a++ 依然是一个非原子操作,也就是这个操作同样存在线程安全问题。原子性:原子性就代表不可分割性。比如 a=0;(a非long和double类型

2020-12-09 17:12:12 90

原创 ide如何删除无用的引用包

idea如何删除无用的引用包呢? 我们日常的开发过过程中,有时候修改代码逻辑会造成一些无用的包引用的情况,虽然对代码的实际操作没啥影响,但对于一些代码有洁癖的人来讲是不能忍受的,这里教大家几个方法来删除无用的包引用。快捷键消除直接ctrl +alt +o自动删除setting—>general–>auto Import—>勾选上图选项—>apply, 关掉以后你就会发现无用的包引用自动就没了一个人走的快,一群人走的远,希望可以帮助到大家...

2020-12-04 11:03:40 3288

原创 JDK1.8 手把手教HashMap源码的详细研读

研究目的 哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,而HashMap的实现原理也常常出现在各类的面试题中,重要性可见一斑。本文会对java集合框架中的对应实现HashMap的实现原理进行讲解,然后会对大版本的JDK1.8的HashMap源码进行分析。什么是哈希表在讨论哈希表之前,我们先一起学习下其他数据结构在新增,查找等基础操作执行性能数组:采用一段连续的存储单元来存储

2020-08-06 10:13:37 172

原创 Java中各个HashMap子类的介绍以及使用场景

Java中各个HashMap子类的介绍以及使用场景摘要HashMap简单介绍各个子类的简单介绍以及使用场景:结束摘要HashMap是日常开发中用到频率相当高的一种键值对处理的数据类型,1.8以后JDK对HashMap的底层进行了优化,引入了红黑树等的数据结构以及扩容的优化,本文着重介绍HashMap的各个子类,以及其使用场景HashMap简单介绍Java为数据结构中的映射定义了一个接口java.util.Map,分别是HashMap、Hashtable、LinkedHashMap和TreeMa

2020-08-05 10:24:07 1133 1

原创 Java实现锁的方式之synchronized的介绍

Java实现锁的方式之synchronized的介绍synchronized介绍synchronized是Java中的关键字,是一种同步锁。它修饰的对象有以下几种:缺点结束synchronized介绍在Java中,有很多中实现锁的方式,在看待线程同步不同的角度,广义上分为悲观锁和乐观锁。Java中synchronized和lock都是悲观锁,此处简单介绍 synchronized。synchronized是Java中的关键字,是一种同步锁。它修饰的对象有以下几种:修饰一个代码块,被修饰的代码块称为

2020-08-03 10:32:00 150

原创 Java树形结构介绍以及Java生成树形结构数据的样例代码

如何把一段表格数据转换成树形结构数据呢?#什么是树形结构数据展示在页面上的效果Java代码实现树形结构数据1.建立树形结构树的展示模型2.实现逻辑结束#什么是树形结构数据展示在页面上的效果Java代码实现树形结构数据1.建立树形结构树的展示模型模型中树的属性主要有4个,实际情况可能有所不同,但这4个是必须的。id(树形结构的标识),name(树形节点的介绍),fatherId(父类节点的标识),ListchilNode(子节点)2.实现逻辑 第一步:新建两个容器,按照注释完成要

2020-07-16 14:20:12 8362 5

原创 idea中open一个maven项目,却无法识别

网上有很多删.idea文件夹的什么,都试过,不靠谱。其实正常的导入,是有一个选择为maven的选项的,我是之前用习惯eclipse,直接把项目粘贴进idea的工作空间就会出现这个问题。 解决方法:选中module的pom.xml,右键,选择" add as maven project",即可刷新为maven项目,嗯,然后不用谢哦。...

2020-05-27 11:52:22 989

原创 springboot实现操作mongodb,储存file文件以及基本数据的增删改查

项目整体的环境介绍:我们整体项目是在ssm的基础上整合了springboot了以及权限框架shiro等,数据库用到了redis,mysql,mongodb,以及对象储存等,本文将重点介绍mongodb的操作。依赖:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</ar

2020-05-18 16:18:32 998

原创 webservice调用cxf服务器端代码报错Unmarshalling Error

背景webservice服务器端:ssm框架+cxf框架webservice客户端:使用soap请求 **今天遇见一个奇怪的现象,我使用ssm项目集成了cxf框架发布项目后,使用cxf的wsdl方式自动生成客户端是可以请求通服务器端代码的,包括在soapui工具中也是可以请求通的,但是使用soap请求的时候,就会报标题的错误 Unmarshalling Error:...

2020-03-16 09:58:12 1283

原创 java实现读取jar包或者压缩包的内容

我之前写过一篇文章,是关于java实现将压缩包的内容复制到指定的路径,用来解决我遇见的一个bug,应用程序无法读取到jar包的内容,故解压出来到java程序可以识别的位置。现在看来有点繁琐了,这篇直接附上如何直接读取到jar包或者压缩包的内容。* @name: copyFont * @Author: yuanxiaojiao * @param * @...

2019-12-21 23:34:39 598

原创 Java实现word文档转换pdf文档

最近我在实现一个功能,经过一系列的测试比较后,最终决定是用aspose包来实现word文档转换为pdf文档的功能,主要的性能比较优,同样的文件转化的效率高达4倍之上(和openoffice等老牌软件比较),当然此功能的实现借助于aspose-word包,这个可以上官网或者有一些破解的也可以用。 接下来直接上代码吧。 /** * @name:transfo...

2019-09-25 11:28:52 878 2

原创 如何解压zip文件到指定的目录

此文章用来纪念耽误我3天时间的bug。 2019年9月25日 我在测试aspose包word转换pdf格式造成中文乱码的问题,排查后得出结论系统找不到jar包中字体的位置,所以需要将jar包解压在指定的位置,然后解决问题。 直接上java接口吧。param1 压缩文件位置的file格式的数据 ...

2019-09-25 11:14:58 3105

原创 JAVA异常捕获与处理

这几天在工作的过程中写了一些关于异常的代码,期间遇见一点点问题,本人整理了一下,和大家一起学习。1.首先我们得了解什么是异常。在开发的过程中,有时程序会出现不可避免、不可预测的错误情况发生,我们称为异常,想象一下, 当整个程序,在某个部分出现异常,导致程序的阻塞,程序没法正常继续的进行下去。为了避免这种情况的发生,加强程序的健壮性,所以Java加入的异常机制,用来捕获和处理异常。2.那...

2019-05-31 14:44:43 178 3

空空如也

空空如也

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

TA关注的人

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