自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 IDEA中设置Run Dashboard

微服务项目的开发过程中,工程会非常多,经常要启动很多个服务,才能完成一项测试。启动的多了,不方便管理,idea提供了管理多个服务的窗口,如下可以在工程目录下找.idea文件夹下的workspace.xml,在其中增加如下组件<component name="RunDashboard"> <option name="configurationTypes"> <set> <option value="SpringBootAppl

2021-05-12 16:30:36 186

原创 idea中引入lombok插件后无法使用get和set方法

需要先在idea上安装lombok才可file–>setting–>Plugins–>搜索lombok–>install–>重启idea

2021-05-12 16:27:13 651

原创 mybatis plus实现自动填充

使用mybatis plus进行自动填充的步骤1、 重写mybatis plus的方法,新建一个类package com.inter.commonbase.handle;import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;import org.apache.ibatis.reflection.MetaObject;import org.springframework.stereotype.Component;impo

2021-05-12 16:23:21 360

转载 Spring Boot 2.x:工程结构推荐

Spring Boot框架本身并没有对工程结构有特别的要求,但是按照最佳实践的工程结构可以帮助我们减少可能会遇见的坑,尤其是Spring包扫描机制的存在,如果您使用最佳实践的工程结构,可以免去不少特殊的配置工作。典型示例以下结构是比较推荐的package组织方式:com +- example +- myproject +- Application.java | +- domain | +- Customer.java | +-

2020-09-14 18:53:39 166

转载 Spring Boot 2.x基础教程:快速入门

快速入门本文我们将学习如何快速的创建一个Spring Boot应用,并且实现一个简单的Http请求处理。通过这个例子对Spring Boot有一个初步的了解,并体验其结构简单、开发快速的特性使用IntelliJ IDEA创建如果是使用IntelliJ IDEA来写Java程序的话,那么还可以直接在编译器中创建Spring Boot应用。第一步:菜单栏中选择:File => New => Project…,我们可以看到如下图所示的创建功能窗口。其中Initial Service Url

2020-09-14 14:26:08 331

转载 java中 service层和DAO层的区别

介绍DAO层dao层叫数据访问层,全称为data access object,属于一种比较底层,比较基础的操作,具体到对于某个表、某个实体的增删改查service 层service层叫服务层,被称为服务,肯定是相比之下比较高层次的一层结构,相当于将几种操作封装起来,至于为什么service层要使用接口来定义有以下几点好处:在java中接口是多继承的,而类是单继承的,如果你需要一个类实现多个service,你用接口可以实现,用类定义service就没那么灵活要提供不同的数据库的服务时,我们只需要

2020-09-10 17:23:48 9162 2

原创 PHP面试题整理

PHP面试题整理用最简单的语言描述什么是PHP,以及它能做什么?PHP是动态解释性脚本语言,主要适用于Web应用开发如下代码$a = true && false;$b = true and false;var_dump($a);var_dump($b);$a = false;$b = true;原因是=的优先级比&&低,但是比and高用PH...

2020-08-28 16:05:51 257

转载 php json_decode返回null问题修复

在使用json_decode函数想把json串转化为数组的时候,出现了null,当时还以为是因为json对字符串的长度有限制,还以为是因为两边少了引号,经过多次处理,发现都没有效果。 百度各种帖子,发现此问题还有人遇到过,那么这个问题肯定也就有解决的方法啦~看过几个帖子,总结问题的出现原因大概有这么几点。我这里把收集到的都总结了json_decode要求的字符串比较严格使用UTF-8编码不能在最后元素有逗号不能使用单引号不能有\r,\t,如果有请替换解决方案bom头问题json字符串中的

2020-07-22 16:21:41 243

转载 消息队列的应用场景

消息队列概述消息队列中间件是分布式系统中重要的组件,主要解决应用耦合、异步消息、流量削锋等问题。实现高性能、高可用、可伸缩和最终一致性架构。是大型分布式系统不可缺少的中间件。目前在生产环境,使用较多的消息队列有ActiveMQ、RabbitMQ、ZeroMQ、Kafka、MetaMQ、RocketMQ等。消息队列应用场景下面详细介绍一下消息队列在实际应用中常用的使用场景。场景分为异步处理、...

2020-04-30 15:54:47 201

转载 消息队列初探

什么是消息队列我们可以把消息队列比作是一个存放消息的容器,当我们需要使用消息的时候可以取出消息供自己使用。消息队列是分布式系统中重要的组件,使用消息队列主要是为了通过异步处理提高系统性能和削峰、降低系统耦合性。目前使用较多的消息队列有ActiveMQ,RabbitMQ,Kafka,RocketMQ,我们后面会一一对比这些消息队列。另外,我们知道队列 Queue 是一种先进先出的数据结构,所以消...

2020-04-30 14:57:01 186

转载 npm方法安装vue

准备在用Vue.js构建大型应用的时候推荐使用NPM安装方法,NPM能很好的和诸如Webpack或者Browserify 模块打包器配合使用。Vue.js 也提供配套工具来开发单文件组件。首先,先列出我们接下来需要的东西:node.js环境(npm包管理器)vue-cli 脚手架构建工具cnpm npm的淘宝镜像步骤安装node.js从node.js官网下载并安装node,安装...

2020-04-27 10:11:52 7879 1

转载 单点登录

什么是SSOSSO的一种较为通俗的定义是:SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。它是目前比较流行的企业业务整合的解决方案之一。一次登录,全部访问单点登录的产生以前我们的系统都是单系统,所有的功能都是在同一个系统上完成的。后来,我们为了合理利用资源和降低耦合性,于是把单系统拆分成...

2020-04-23 15:08:17 1228 2

转载 类之间的几种关系

依赖关系简单的理解,依赖就是一个类A使用到了另一个类B,而这种使用关系是具有偶然性的、临时性的、非常弱的,但是类B的变化会影响到类A。比如某人要过河,需要借用一条船,此时人与船之间的关系就是依赖。表现在代码层面为类B作为参数被类A在某个method方法中使用。在UML类图设计中,依赖关系用由类A指向类B的带箭头虚线表示。关联关系关联体现的是两个类之间语义级别的一种强依赖关系,有时也被称为“...

2020-02-19 11:58:34 1001

转载 post和get的区别

post和get的区别特点http的特点基于tcp/ip、一种网络应用层协议、超文本传输协议HyperText Transfer Protocol工作方式:客户端请求服务端应答的模式快速:无状态连接灵活:可以传输任意对象,对象类型由Content-Type标记客户端请求request消息包括以下格式:请求行(request line)、请求头部(header)、空行、请求数据服...

2020-01-19 10:28:30 108

转载 Redis持久化存储(AOF与RDB两种模式)

Redis持久化存储(AOF与RDB两种模式)Redis中数据存储模式有2种:cache-only,persistence:cache-only即只做为“缓存”服务,不持久数据,数据在服务终止后将消失,此模式下也将不存在“数据恢复”的手段,是一种安全性低/效率高/容易扩展的方式;persistence即为内存中的数据持久备份到磁盘文件,在服务重启后可以恢复,此模式下数据相对安全。对于p...

2020-01-17 16:42:06 184

转载 数据库SQL优化总结

数据库SQL优化总结百万级数据库优化方案对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如select id from t where num is null最好不要给数据库留NULL,尽可能的使用 NOT NULL填充数据...

2020-01-17 11:55:09 394

转载 HTTP协议

HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。HTTP协议Content-Type指响应内容的类型,常见的text/html表示HTML网页。请注意,浏览器就是依靠Content-Type来判断响应的内容是网页还是图片,是视频还是音乐。浏览...

2019-10-27 19:52:01 271

转载 TCP/IP协议

TCP协议TCP是面向连接的通信协议,通过三次握手建立连接,通讯完成时要拆除连接,由于TCP是面向连接的所以只能用于端到端的通讯。TCP提供的是一种可靠的数据流服务,采用“带重传的肯定确认”技术来实现传输的可靠性。TCP还采用一种称为“滑动窗口”的方式进行流量控制,所谓窗口实际表示接收能力,用以限制发送方的发送速度。如果IP数据包中有已经封好的TCP数据包,那么IP将把它们向‘上’传送到TC...

2019-10-27 19:01:48 393

转载 计算机网络体系结构

OSI七层模型开放系统互连参考模型 (Open System Interconnect 简称OSI)是国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)联合制定的开放系统互连参考模型,为开放式互连信息系统提供了一种功能结构的框架。其目的是为异种计算机互连提供一个共同的基础和标准框架,并为保持相关标准的一致性和兼容性提供共同的参考。这里所说的开放系统,实质上指的是遵循OSI参考模型和相...

2019-10-27 17:59:30 329

转载 彻底理解Cookie,Session,Token

发展史1、很久很久以前,Web 基本上就是文档的浏览而已, 既然是浏览,作为服务器, 不需要记录谁在某一段时间里都浏览了什么文档,每次请求都是一个新的HTTP协议, 就是请求加响应, 尤其是我不用记住是谁刚刚发了HTTP请求, 每个请求对我来说都是全新的。这段时间很嗨皮2、但是随着交互式Web应用的兴起,像在线购物网站,需要登录的网站等等,马上就面临一个问题,那就是要管理会话,必须记住哪些人登...

2019-10-09 19:25:09 106

转载 单例模式解读

单例模式这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例。即一个类只有一个对象实例。要点主要有三个:一个类只能有一个对象;必须是自行创建这个类的对象;要想整个系统提供这一个对象;从具体实现角度来说,就是以下三点:一、单例模式的类只提供私有的构造函数,二、类定义...

2019-10-09 18:58:18 138

转载 缓存穿透,缓存击穿,缓存雪崩解决方案方案

前言设计一个缓存系统,不得不要考虑的问题就是:缓存穿透、缓存击穿与失效时的雪崩效应。缓存穿透缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。在流量大时,可能DB就挂掉了,要是有人利用不存在的key频繁攻击我们的应用,这就是漏洞。解决方案:一、如果从...

2019-10-09 18:24:12 86

转载 数据库读写分离

读写分离的基本原理让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE)操作,而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到其他从数据库。以SQL为例,主库负责写数据、读数据。读库仅负责读数据。每次有写库操作,同步更新到读库。写库就一个,读库可以有多个,采用日志同步的方式实现主库和多个读库的数据同步。Replication原理Mys...

2019-09-26 09:33:47 121

转载 数据库读写分离解决的问题

有一些技术同学可能对于“读写分离”了解不多,认为数据库的负载问题都可以使用“读写分离”来解决。这其实是一个非常大的误区,我们要用“读写分离”,首先应该明白“读写分离”是用来解决什么样的问题的,而不是仅仅会用这个技术。什么是读写分离?其实就是将数据库分为了主从库,一个主库用于写数据,多个从库完成读数据的操作,主从库之间通过某种机制进行数据的同步,是一种常见的数据库架构。一个组从同步集群,通常...

2019-09-25 18:15:12 447

原创 Git 快捷操作

Git快捷操作打开自己目录下的 vi .gitconfig[alias]st = statusck = checkoutcm = commitbr = branchcmp = “!f() { git add -A && git commit -m $1 -n&& git push; }; f”

2019-09-25 18:03:17 213

转载 为什么我们不建议使用select*查询

过多的多余字段会带来数据传输的速度问题,即使MySql客户端和服务端是处在同一台机器上,但是MySql还是使用的TCP协议进行数据传输,过多的字段必定带来的是数据传输速度的下降。如果字段中出现类似于text,blob这种长度较大的字段时,MySql会将大长度的字段存储在其他空间中,不会和其他字段进行相同空间的存储,所以select * 会增加I/O次数。由于我们在使用select * 进行查...

2019-09-16 18:44:34 1793

转载 Mysql-覆盖索引

概念如果索引包含所有满足查询需要的数据的索引成为覆盖索引(Covering Index),即不需要回表操作判断sql是否使用了覆盖索引我们可以通过expalin来判断查询是否覆盖索引,主要看extra字段是否有 using index 。覆盖索引的优势使用覆盖索引的点在于其不用回表操作,不需要回表操作有哪些优势呢?索引条目通常远小于数据行大小,只需要读取索引,则mysql会极大地减少...

2019-09-16 18:40:54 188

转载 聚簇索引与非聚簇索引(也叫二级索引)

通俗点讲聚簇索引:将数据存储与索引放到了一块,找到索引也就找到了数据非聚簇索引:将数据存储于索引分开结构,索引结构的叶子节点指向了数据的对应行,myisam通过key_buffer把索引先缓存到内存中,当需要访问数据时(通过索引访问数据),在内存中直接搜索索引,然后通过索引找到磁盘相应数据,这也就是为什么索引不在key buffer命中时,速度慢的原因澄清一个概念:innodb中,在聚簇索引...

2019-09-04 18:43:04 647

转载 Mysql悲观锁与乐观锁

悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。乐观锁总是假设最好的情况,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但...

2019-09-04 17:12:42 75

原创 Laravel批量更新多条数据

前言近期在刷新生产环境数据库的时候,需要更新表中的字段,如果对每条数据结果都执行一次update语句,占用的数据库资源就会很多,而且速度慢,显得也不高大上。因为项目是Laravel框架,Laravel有批量插入的方法,却没有批量更新的方法,没办法只能自己实现。准备mysql case…when的用法MySQL 的 case when 的语法有两种:简单函数CASE [col_na...

2019-09-04 11:59:22 13992

转载 一条SQL语句执行得很慢的原因有哪些?

说实话,这个问题可以涉及到 MySQL 的很多核心知识,可以扯出一大堆,就像要考你计算机网络的知识时,问你“输入URL回车之后,究竟发生了什么”一样,看看你能说出多少了分类讨论一条 SQL 语句执行的很慢,那是每次执行都很慢呢?还是大多数情况下是正常的,偶尔出现很慢呢?所以我觉得,我们还得分以下两种情况来讨论。1、大多数情况是正常的,只是偶尔会出现很慢的情况。2、在数据量不变的情况下,这条...

2019-09-03 18:37:55 558

转载 一条SQL语句在MySQL中如何执行的

本篇文章会分析一个 sql 语句在 MySQL 中的执行流程,包括 sql 的查询在 MySQL 内部会怎么流转,sql 语句的更新是怎么完成的。在分析之前我会先带着你看看 MySQL 的基础架构,知道了 MySQL 由那些组件组成以及这些组件的作用是什么,可以帮助我们理解和解决这些问题。MySQL 基础架构分析MySQL 基本架构概览下图是 MySQL 的一个简要架构图,从下图你可以很清...

2019-09-03 10:42:21 1159

原创 数据库事务的特性和隔离级别

数据库事务的特性在数据库操作中,一项事务(Transaction)是由一条或多条操作数据库的 SQL 语句组成的一个不可分割的工作单元,这些操作要么都完成,要么都取消。接下来将围绕事务的特性、并发问题以及隔离级别进行讲解。原子性(Atomicity)原子性是指事务是一个不可分割的工作单位,事务中的操作要么全部成功,要么全部失败。比如在同一个事务中的SQL语句,要么全部执行成功,要么全部执...

2019-09-02 16:38:41 117

转载 Mysql 索引原理

背景MySQL凭借着出色的性能、低廉的成本、丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库。虽然性能出色,但所谓“好马配好鞍”,如何能够更好的使用它,已经成为开发工程师的必修课,我们经常会从职位描述上看到诸如“精通MySQL”、“SQL语句优化”、“了解数据库原理”等要求。我们知道一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,遇到最多的,也是最容...

2019-09-02 11:08:00 105

转载 Mysql慢查询分析和优化

慢查询优化神器 - explain命令关于explain命令相信大家并不陌生,这里需要强调rows是核心指标,绝大部分rows小的语句执行一定很快(有例外,下面会讲到)。所以优化语句基本上都是在优化rows。慢查询优化基本步骤先运行看看是否真的很慢,注意设置SQL_NO_CACHEwhere条件单表查,锁定最小返回记录表。这句话的意思是把查询语句的where都应用到表中返回的记录数...

2019-08-30 17:49:04 249

转载 设计模式的原则

设计模式原则设计模式的目的是为了更好的代码重用性,可读性,可靠性和可维护性。常用的六大设计模式有:单一职责原则(SRP),里氏替换原则(LSP),依赖倒转原则(DIP),接口隔离原则(ISP),迪米特法则(LOD),开闭原则(OCP)。单一职责原则(Single Responsibility Principle)该原则是针对类来说的,即一个类应该只负责一项职责。假设有一个部门的类叫做T,他的...

2019-08-28 18:47:51 134

原创 读取文件操作

Linux 管道管道是进程间通信的主要手段之一。一个管道实际上就是个只存在于内存中的文件,对这个文件的操作要通过两个已经打开文件进行,它们分别代表管道的两端。shell脚本读取文件到PHP用shell打开并读取文件 通过管道将读取的内容输送给PHP$1是shell的脚本的第一个参数,是一个要导入的文件名,管道后面是laravel的PHP脚本执行方式在此处,管道会将cat的导入的文件按流...

2019-08-25 13:29:40 245

原创 进程和线程的区别

进程是资源的分配和调度的独立单元(包括寄存器、堆、内存空间、句柄等);线程是CPU调度的基本单元。同一个进程中可以包括多个线程,并且一个进程中至少包括一个线程线程共享进程资源,所以同一个进程中的线程执行时一般都是同步和互斥的进程结束后它拥有的所有线程都将销毁,而线程的结束不影响同个进程中其他线程的结束线程有自己的私有属性TCB,线程id、寄存器、硬件上下文;进程有自己的私有属性进程控制块...

2019-08-22 18:49:56 114

原创 哈希算法的应用

哈希算法的应用哈希算法将任意长度的二进制值串映射成固定长度的二进制值串,这个映射规则就是哈希算法。通过原始数据映射之后得到的二进制值串就是哈希值。一个优秀的哈希算法需满足以下几点:从哈希值不能反向推导出原始数据(所以哈希算法也叫单向哈希算法)对输入数据非常敏感,即使原始数据只修改了一个Bit,最后得到的哈希值也大不相同散列冲突的概率要很小,对于不同的原始数据,哈希值相同的概率非常小...

2019-08-18 18:17:05 379

原创 散列表简介

散列表

2019-08-18 16:44:20 271

空空如也

空空如也

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

TA关注的人

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