自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 mysql版本号xx.xx.xx类型字段排序问题解决

项目开发中mysql有版本号字段,类似于1.0.0,1.0.1这种,需求是按照版本号倒序排列。直接使用字段排会根据字符串进行排序,这样1.10.1和1.2.1进行排序,本来想让1.10.1排在前面,但是字符串排序2比1大,1.2.1就排在了前面,不是我们想要的结果。想到把version版本号拆分成...

2020-04-30 09:41:45 106 0

原创 前端ES6获取两个数组的差集

直接上代码,用到了filter和some let arrA = [{id:1,age:21},{id:2,age:22},{id:3,age:23},{id:4,age:24}] let arrB = [{id:1,age:21},{id:2,age:22}] let arrC = arr...

2020-04-29 09:43:06 92 0

原创 win10系统docker安装kafka

由于kafka依赖zookeeper,所以使用到了docker-compose,由于我使用的是Docker Desktop,默认安装了docker-compose,否则需要自己安装,可以用下面命令检查是否安装了docker-compose docker-compose -v 这里就不介绍安装...

2020-01-17 15:56:23 334 0

原创 win10系统docker安装mysql和nginx

自己本地安装了docker desktop,安装mysql,自己本地用,可以方便的切换版本进行测试等; 很简单,直接上代码 mysql #拉取最新的mysql,也可以在后面指定版本 docker pull mysql #查看拉取结果 docker images #直接docker run创...

2020-01-17 09:31:59 167 0

原创 前端设置dialog弹出框框关闭动画效果

项目前端使用element-ui框架,其提供的dialog弹出框没有过渡动画,比较单调,项目需要实现关闭弹出框时,弹出框逐渐缩小并移动到右上角消失。 只能自己手动修改css样式,这里用到了animation 和 transform属性; 贴代码: 其中.popout-box的class属性是...

2020-01-14 15:03:27 323 0

原创 springboot后台接收对象集合

前端处理,将array处理成json字符串,JSON.stringify(); let params = [{id:1,name:'ab'},{id:2,name:'cd'}] axios(`/batch/pass`, JSON.stringify(pa...

2019-11-26 14:49:41 122 6

原创 前端使用ES6根据对象某个属性sort排序

member列表,有id和role属性,按照role角色排序: let members = [ {id: 1, role: 3}, {id: 2, role: 1}, {id: 3, role: 1}, {id: 4, role: 4} ] members = members.sort...

2019-11-19 10:22:27 287 0

原创 长连接和短连接

在HTTP/1.0中默认使用短连接。也就是说,客户端和服务器每进行一次HTTP操作,就建立一次连接,任务结束就中断连接。当客户端浏览器访问的某个HTML或其他类型的Web页中包含有其他的Web资源(如JavaScript文件、图像文件、CSS文件等),每遇到这样一个Web资源,浏览器就会重新建立一...

2019-09-04 09:40:52 193 0

原创 springboot中@Aysnc的线程池设置

1、添加AsyncConfig配置类,设置线程池信息 @Configuration @EnableAsync public class AsyncConfig implements AsyncConfigurer { public static final Logger logger...

2019-09-03 18:58:30 176 0

原创 The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized

问题: springboot启动过程中,数据库报错: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more 原因: SYSTEM为SQL默认美国时间,而我们中国要比他们...

2019-09-03 13:50:47 46 0

原创 quartz任务调度简介

quartz定时调度框架三个主要接口类 1、Job任务 具体要执行任务的程序。比如发短信,发邮件,访问数据库,同步数据,数据的清洗等业务逻辑功能。 2、Tigger触发器   作用: 它是来执行工作任务,在什么条件下触发,什么时间执行,多久执行一次。   四大类型:SimpleTrig...

2019-08-23 09:36:31 59 0

原创 springboot中@Scheduled定时任务的线程修改

@Scheduled简介: springboot中自带的@Scheduled注解,以将它看成一个轻量级的Quartz,默认情况下是单线程的。也就是无论同时有多少个任务需要执行,都需要排队等待某个任务完成之后才能继续下一个任务。 我们可以通过xml配置任务线程池,也可以通过继承Sc...

2019-08-19 12:19:26 345 0

原创 springboot中kafka消费之配置详解

kafka配置如下: kafka消费者默认开启线程池,可以通过consumer.concurrency来设置消费线程数 #原始数据kafka读取 kafka.consumer.servers=IP:9092,IP:9092(kafka消费集群ip+port端口) kafka.consumer...

2019-08-19 10:45:46 2811 0

原创 springboot中@Aysnc注解使用

1、在springboot启动类上添加@EnableAsync @SpringBootApplication @EnableConfigurationProperties @EnableAsync public class Main { public static final Log...

2019-08-19 10:32:11 762 0

原创 Springboot项目启动时加载数据库数据到内存

问题: 项目中有一个文件类型表,通过文件后缀获取文件类型,存放在数据库中。由于文件过多,每次遍历文件获取文件类型都需要查询数据库,且我们没有搭Redis等缓存数据库,所以需要再服务启动的时候将数据数据库加载到内存中。 解决办法:使用的是第二种 1、使用static{}静态块儿 ...

2019-08-16 10:29:01 4903 0

原创 Jacoco代码覆盖率报告详解

JaCoCo Jacoco从多种角度对代码进行了分析,包括指令(Instructions,C0 Coverage),分支(Branches,C1 Coverage),圈复杂度(Cyclomatic Complexity),行(Lines),方法(Methods),类(Classes)。 ...

2019-08-12 17:05:45 2967 0

原创 SpringBoot中使用单元测试

1、在pom文件中添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactI...

2019-08-12 16:47:01 660 0

原创 @Transactional注解事务未回滚问题

1、问题: 在项目中使用了@Transactional注解,如下: /** * 非运行时异常默认事务不回滚 * @throws Exception */ @Transactional public void insert() throws Exception { try { Us...

2019-07-29 10:53:44 250 0

原创 getMethods 与 getDeclaredMethods 的区别

1、public Method[] getMethods() 返回某个类的所有公用(public)方法包括其继承类的公用方法,当然也包括它所实现接口的方法。 2、public Method[] getDeclaredMethods() 对象表示的类或接口声明的所有方法,包括公...

2019-07-22 14:52:43 113 0

原创 VO、DTO、DO、PO的概念和用处

VO(View Object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。 DTO(Data Transfer Object):数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提...

2019-07-22 09:41:16 55 0

原创 ClassNotFoundException和NoClassDefFoundError的区别

1、ClassNotFoundException 从名字上看,可以看出来这个继承自Exception类,是一个Exception类型,出现场景:当程序启动过程中,类加载器常识加载class文件的时候,没有在指定的classpath中找到指定的类,就会抛出ClassNotFoundExce...

2019-07-12 09:55:14 286 0

原创 Integer和int的区别

int是我们常说的整形数字,Java语言虽然号称一切都是对象,但原始数据类型是例外。Integer是int对应的包装类,它有一个int类型的字段存储数据。 public static void main(String[] args) { //原始数据类型赋值 ...

2019-07-11 10:17:04 27 0

原创 springboot统一异常处理(JSON和ModelAndView)

首先,我们需要使用注解@ControllerAdvice,再结合@ExceptionHandler可以用于全局异常的处理。这里对这两个注解不做解释。 1、返回Json格式数据、 注:返回类ResponseJsonModel类是自定义类,其中包含属性如下: public class Resp...

2019-07-04 11:05:55 857 0

原创 vue添加时间处理过滤器

1、首先添加一个工具列,处理date时间,方便我们在页面中既可以使用工具类来处理时间,也可以再过滤器中使用工具类,创建date.js工具类 const date = { format(date,fmt){ return format(date,fmt); }, before...

2019-06-18 15:33:46 464 0

原创 vue+markdown编辑器mavonEditor

GitHub链接 第一步:npm安装 npm install mavon-editor --save 第二步:在main.js中引用 // The Vue build version to load with the `import` command // (runtime-only ...

2019-05-29 17:49:24 208 0

原创 vue+mockjs前后端分离mock数据

在前后端分离开发过程中,后端接口没有开发完成之前,前端可以用已有的接口文档,在真实的请求上拦截ajax,并根据mockjs的mock数据的规则,模拟真实接口返回的数据,并将随机的模拟数据返回参与相应的数据交互处理,这样真正实现了前后台的分离开发。 与以往的自己模拟的假数据不同,mockj...

2019-05-29 16:59:57 269 0

原创 float之后如何居中

问题: 如下代码,两个div使用了float并排在一行,这种情况下style="align:center" 不起作用。 <div style="align:center"> <div style="float:left&...

2019-05-17 15:15:54 493 0

原创 MySQL:change buffer

1、change buffer InnoDB的数据是按数据页为单位来读写的。也就是说,当需要读一条记录的时候,并不是将这个记录本身从磁盘读出来,而是以页为单位,将其整体读入内存。在InnoDB中,每个数据页的大小默认是16KB。 在更新数据页时,首先去内存中查看是否有这个数据页...

2019-05-16 15:05:52 368 0

原创 MySQL:全局锁,表锁和行锁

数据库为多用户共享的,当出现并发访问的时候,需要使用锁来控制资源的访问。根据加锁的范围,MySQL里面的锁大致可以分成全局锁、表级锁和行锁三类。 1、全局锁 全局锁即给整个数据库实例加锁。主要的使用场景:做全库逻辑备份的时候,为了保证备份期间的库在同一个逻辑时间点,即保证一致性,类似于...

2019-05-09 10:17:30 472 0

原创 MySQL: 索引(下)

假设,我们有一个主键列为id的表,表中有字段k,并且在k上也有索引。即有一个主键聚集索引和一个普通索引。表中Row1~Row5的(id,k)值分别为(1,100)、(2,200)、(3,300)、(5,500)和(6,600),两棵树的示例示意图如下。我们来分析下面的查询语句扫描了几次索引树; ...

2019-05-07 10:50:53 60 0

原创 MySQL: 索引(上)

1、简介 索引的出现其实就是为了提高数据查询的效率,就像书的目录一样。一本500页的书,如果你想快速找到其中的某一个知识点,在不借助目录的情况下,就会很麻烦耗时。同样,对于数据库的表而言,索引其实就是它的“目录”。 一个表只能有一个主键 一个加了主键的表,并不能被称之为「表」...

2019-05-06 10:22:20 42 0

原创 MySQL: 多版本并发控制机制MVCC

MVCC是一种多版本并发控制(Multi-Version Concurrency Control)机制。大多数的MYSQL事务型存储引擎如:InnoDB,Falcon以及PBXT都不使用一种简单的行锁机制。事实上,他们都和MVCC多版本并发控制来一起使用。大家都应该知道,锁机制可以控制并发操作,但...

2019-05-05 14:26:43 73 0

原创 js的sort()方法

let weekArray=[6,5,4,2,3]; console.log(weekArray) weekArray.sort((a, b) => a - b); console.log(weekArray)

2019-05-05 13:37:43 41 0

原创 MySQL: 事务的隔离级别

一、事务的四种个隔离级别 我们都知道事务的ACID(Atomicity、Consistency、Isolation、Durability,即原子性、一致性、隔离性、持久性)四个特性,当数据库上有多个事务同时执行的时候,就可能出现脏读(dirty read)、不可重复读(non-repea...

2019-05-05 10:13:15 46 0

原创 MySQL: 一条sql更新语句的执行流程,以及redolog和binlog

UPDATE `user_info` SET name = 'zhangsan' WHERE id = 1; 和查询语句流程一样,更新语句也会同样走一遍相同的流程,如下图: 连接器验证权限,更新数据会使缓存失效,分析器分析词法和语法,优化器选择索引,执行器调用存...

2019-04-30 13:56:50 302 0

原创 MySQL: 一条sql查询语句的执行流程

MySQL的基本架构图 : MySQL可以分为Server层和存储引擎层两部分。 Server层包括连接器、查询缓存、分析器、优化器、执行器等,包括了MySQL的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比...

2019-04-29 18:56:27 308 0

原创 Linux下curl get方法多参数&符号问题

在Linux下 curlhttp://127.0.0.1:8080/test?a=1&b=2&c=3 $_GET只能获取到参数a 由于url中有&,其他参数获取不到,在linux系统中& 会使进程系统后台运行 必须对&进行下转义才能$_GET获取到所...

2019-04-09 17:26:06 1036 0

原创 com.mysql.jdbc.Driver 和 com.mysql.cj.jdbc.Driver的区别

com.mysql.jdbc.Driver是 mysql-connector-java 5中的,com.mysql.cj.jdbc.Driver是 mysql-connector-java 6中的 mysql5用的驱动url是com.mysql.jdbc.Driver,mysql6以后用的是co...

2019-03-28 11:47:38 642 0

原创 VUE路由导航守卫——组件内的路由导航守卫

参考vue官方,VUE.js组件内导航守卫。可以在路由组件内直接定义以下路由导航守卫: beforeRouteEnter beforeRouteUpdate(2.2 新增) beforeRouteLeave 其中beforeRouteUpdate守卫,对于带有动态参数路径的路由间跳转,用处...

2019-03-27 14:31:22 876 0

原创 java调用shell脚本及注意事项

需求: get方法下载远程zip包,然后zip包解压,取出第一级目录再次进行压缩获取新的压缩zip包。 问题: 如果选择使用java代码的IO流操作,在不确定zip包大小的情况下可能会占用很大的内存,所以选择异步调用shell脚本来实现这个操作; 介绍: 1、通过ProcessBuild...

2019-03-25 17:31:37 1563 1

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