自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 mysql在执行大Sql语句时的 抛出的max_allowed_packet异常的处理方案

修改mysql的本地配置:1、查看当前数据库的max_allowed_packet大小,并设置max_allowed_packetSHOW VARIABLES LIKE '%max_allowed_packet%';set GLOBAL max_allowed_packet = 1024*1024*256;2、设置MySQL日志写入磁盘策略 set global inn...

2020-04-28 16:48:55 399

原创 Spring Boot+mybatis 创建多数据源连接

Spring Boot+mybatis 创建多数据源连接一、背景:公司系统需要做异构数据库数据迁移,需要配置多数据源,配置过程中也出现过些小问题,所以在此做下记录;二、代码地址:https://github.com/tiedungao/multipleDataSource.git三、代码讲解1、项目结构: ...

2020-01-11 12:12:29 415

转载 Linux安装Docker

Linux环境安装安装:  1、Docker要求CentOS系统的内核版本高于 3.10 ,通过uname -r命令查看你当前的内核版本是否支持安账docker  2、更新yum包:sudo yum update  3、安装需要的软件包,yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的    sudo yum in...

2019-12-20 10:24:15 254

原创 SpringBoot+Mybatis项目使用mybatis调用存储过程传入参数并接收返回值实现方式

背景:项目中需要使用存储过程做积分与余额的转化,需要传入类型来决定处理哪种类型的账户进行转化,也需要接收转化数目。存储过程已经写好,但是一直接收不到存储过程的返回值,纠结了很久终于解决,在网上搜索的处理方式也都是看的一知半解,所以做下记录。一、存储过程:DROP PROCEDURE pro_member_credits_transfer;CREATE PROCEDURE pro_m...

2019-11-14 21:37:17 7416

原创 Mybatis 提示异常avalible not statement 异常解决方案

1、在xml中namespace要全限定名路径

2019-06-25 09:40:22 297

原创 使用IDEA开发Mybatis在编写mapper文件出现<statement> expected, got'***' 错误

背景:今天使用IDEA和mybatis项目时,编写通用sql语句时一直提示<statement> expected, got ‘***’错误,当时以为是拼写错误或者使用了关键字,但事实上不是如此,这个是IDEA的一个配置导致的。解决方案:打开IDEA的Settings->Editor->Language Injections。找到iBatis3: sql|se...

2019-04-15 19:49:59 11961 2

原创 Erlang和RabbitMQ安装

关于RabbitMQ和Erlang这里就不介绍了,这里仅仅介绍安装。一、下载地址下载地址:Windows64位RabbitMQ:https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.14/rabbitmq-server-3.7.14.exeWindows下Erlang下载: http://erlang...

2019-04-11 10:11:35 451

原创 Docker知识点记录

一、什么是Docker? Docker是一个开源的应用容器引擎,可以看作是轻量级的虚拟机,但却不是虚拟机,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。 ------引用百度百科二、Docker的组成一个完整的Docker有以下几个部分组成: Doc...

2019-04-08 22:29:33 195

转载 YAML知识点

YAML 语言(发音 /ˈjæməl/ )的设计目标,就是方便人类读写。它实质上是一种通用的数据串行化格式。它的基本语法规则如下。大小写敏感 使用缩进表示层级关系 缩进时不允许使用Tab键,只允许使用空格。 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可#表示注释,从这个字符一直到行尾,都会被解析器忽略。YAML 支持的数据结构有三种。对象:键值对的集...

2019-04-08 21:51:29 182

原创 Docker中启动redis

Windows10系统1、使用命令:docker pull redis 来下载redis镜像。2、通过命令docker images来查看redis镜像是否安装成功3、安装成功后通过 docker run --name java_redis -d redis 来运行redis4、通过命令docker ps来查看redis是否启动成功5、当redis启动成功后,通过命令d...

2019-04-03 20:21:28 1349

原创 Windows10环境下使用Docker发布第一个Java Web项目

首先使用SpringBoot创建一个Web项目,我这里创建的是一个简单的helloworld项目。保证能正常运行。package com.gao.hello.controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.anno...

2019-04-02 20:11:12 1341

原创 Docker安装过程中遇到的问题

自己的开发环境:Windows10专业版,Docker最新版本。安装过程中没有任何问题。首先安装时就出现了问题,Docker没法启动,这个需要通过启动程序Hyper-V,但是在启动时报“组件存储已损坏”错误。试了网上的一些解决方法,但是都不能解决。最后我的解决方法是更新Windows系统到最新版本,因为Windows本身的检查更新没法发现版本更新,所以我自己下载的Windows系统更新包。如果...

2019-04-02 19:08:45 221

原创 Spring事务管理+SpringBoot中事务代码实现

谈谈对Spring中事务管理的理解结合在慕课网中的课程去谈Spring的事务。Spring的事务管理提供了三个重要接口,分别是PlatformTransactionManager,TransactionDefinition、TransactionStatus。我们分别介绍一下,PlatformTransactionManager是Spring为事务提供的平台事务管理器,所有的Sprin...

2019-03-21 12:15:22 1096

原创 Synchronized和ReentrantLock 的区别

说说Synchronized和Lock(ReenTrantLock)的区别1、首先实现层面上,Synchronized是Java关键字,是在JVM层面上实现的同步;而ReentrantLock则是在JDK的层面上编写的Java同步类2、公平锁和非公平锁上,Synchronized是非公平锁,而ReentrantLock可以指定非公平锁或公平锁,默认是非公平锁3、可重入性上,Synch...

2019-03-18 10:43:14 269

原创 hibernate中使用EHCache实现二级缓存

为了提高减少频繁访问数据库,提高系统性能,使用Hibernate的二级缓存插件EHCache详细实现如下:hibernate.cfg.xml文件&lt;?xml version='1.0' encoding='utf-8'?&gt;&lt;!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Co...

2019-03-17 19:19:16 341

转载 数据库的五种索引类型

本文从如何建立mysql索引以及介绍mysql的索引类型,再讲mysql索引的利与弊,以及建立索引时需要注意的地方首先:先假设有一张表,表的数据有10W条数据,其中有一条数据是nickname='css',如果要拿这条数据的话需要些的sql是 SELECT * FROM award WHERE nickname = 'css'一般情况下,在没有建立索引的时候,mysql需要扫描全表及扫描1...

2019-03-15 21:24:13 108207 5

原创 数据库查询优化(面试自用)

说说常见的数据库查询优化方法常见的数据库优化有:避免全表扫描避免索引失效避免查询不必要的字段避免频繁的创建和删除临时表使用Like '%***'会导致索引失效使用Or来代替&lt;&gt;和 !=使用exists代替in不要对where后的字段做函数处理尽量减少排序使用Union ALL代替Union正确的索引建立表关联时取别名...

2019-03-15 18:03:27 553

原创 BlockingQueue存取方法

本篇文章对BlockingQueue的源码进行分析,主要是对BlockingQueue的出队入队方法进行分析,以加深印象BlockingQueue是Queue的子接口//入队方法 四个boolean add(E e); //元素入队,如果入队成功返回true,如果失败则抛出异常boolean offer(E e); //元素入队,如果入队成功返回true,如果失败则返回fa...

2019-03-14 12:11:14 444

原创 线程与线程池(面试自用)

谈谈你对线程、线程池以及使用多线程的经验?我们知道线程是CPU调度和分配的最小单位,线程的创建的方式有继承Thread类、实现Runnable接口或者实现Callable接口。他们之前的区别是 Java是单继承多实现的,一旦我们创建的线程类集成了Thread类之后就不能继承其他父类了,所以不推荐使用继承的方式,Runnable类是所有多线程类的父接口,通过实现该接口的run()方法;第三种是实...

2019-03-13 01:26:29 192

原创 JVM中的GC(面试自用)

谈谈你对JVM的GC的理解首先JVM中对内存的分配和回收是不需要人工参与的,java虚拟机中的垃圾回收机制会对无用对象进行回收。 那么什么无用对象呢,有两种方式进行判断,一、引用计数法,每个对象维护一个计数器,当有一个引用指向它时,该计数器+1,当引用断开时,该计数器-1,等到JVM中GC进行垃圾回收的时候,会把引用计数器值为0的对象进行回收,这种方法有一个缺点,那就是对循环引用...

2019-03-12 11:56:40 302

原创 JVM内存模型(面试自用)

请讲一讲你对JVM内存模型的了解?首先要说一下JVM内存空间分为五部分,分别是:方法区、堆、Java虚拟机栈、本地方法栈、程序计数器方法区主要用来存放类信息、类的静态变量、常量、运行时常量池等,方法区的大小是可以动态扩展的,堆主要存放的是数组、类的实例对象、字符串常量池等。Java虚拟机栈是描述JAVA方法运行过程的内存模型,Java虚拟机栈会为每一个即将执行的方法创建一个叫做“栈...

2019-03-07 21:35:06 18870 18

转载 Zookeeper 在 Kafka 中的作用

Zookeeper 在 Kafka 中的作用leader 选举 和 follower 信息同步如上图所示,kafaka集群的 broker,和 Consumer 都需要连接 Zookeeper。Producer 直接连接 Broker。Producer 把数据上传到 Broker,Producer可以指定数据有几个分区、几个备份。上面的图中,数据有两个分区 0、1,每个分区...

2019-03-06 23:57:31 373

转载 Linux的tar命令

Linux下的tar压缩解压缩命令详解tar-c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。-z:有gzip属性的-j:有bz2属性的-Z:有compress属性的-v:显示所有过程-O:...

2019-03-06 22:40:25 126

转载 Volatile关键字解析

在Java相关的岗位面试中,很多面试官都喜欢考察面试者对Java并发的了解程度,而以volatile关键字作为一个小的切入点,往往可以一问到底,把Java内存模型(JMM),Java并发编程的一些特性都牵扯出来,深入地话还可以考察JVM底层实现以及操作系统的相关知识。下面我们以一次假想的面试过程,来深入了解下volitile关键字吧!面试官: Java并发这块了解的怎么样?说说你对v...

2019-03-06 09:12:30 177

转载 排序算法

十大经典排序算法(动图演示)0、算法概述0.1 算法分类十种常见排序算法可以分为两大类:非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序。线性时间非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此称为线性时间非比较类排序。0.2 算法复杂...

2019-03-04 10:51:50 244

原创 菜鸟网络面试题

1、排序算法2、递归算法3、HashMap和concurrentHashMap在多重情况下的效率4、HashMap扩容机制5、如果自己对以前的项目进行重构,打算重构哪些部分,如何实现(项目部分)6、以前项目中用到的技术,对其原理进行分析。...

2019-02-28 11:06:03 2443

原创 面试题一

1、SpringMVC工作流程2、Hibernate和Mybatis的优缺点3、Mysql的引擎4、Kfaka的原理及所知道的消息队列之间的区别5、Hibernate的缓存机制6、Java反射机制7、ZooKeeper和Kafka联合使用时,ZooKeeper的作用是什么8、HashMap中的红黑树了解多少9、常见的同步锁用过哪些,并说说之间的区别10、JVM内...

2019-02-27 21:11:08 159

转载 Java中的几种阻塞队列

Java中的几种阻塞队列发表于2017-05-09Java中的BlockingQueue接口是一个线程安全的存取队列,适用于生产者消费者的应用场景中,支持两个附加操作:生产者线程会一直不断的往阻塞队列中放入数据,直到队列满了为止。队列满了后,生产者线程阻塞等待消费者线程取出数据。 消费者线程会一直不断的从阻塞队列中取出数据,直到队列空了为止。队列空了后,消费者线程阻塞等待生产者线...

2019-01-23 10:45:21 14054 2

原创 TCP四次挥手

之前分析了TCP的在客户端和服务端建立连接时的三次握手,那么顺便也学习下TCP的四次挥手吧!图是从百度百科上拿来的,感觉很详细。我们就直接开始分析通信过程吧!第一次挥手:当客户端已经不需要向服务端发送数据时(即请求断开连接),客户端先发送一个FIN(FIN=1,seq=u)给服务端,来告诉服务端它已经完成了想要的通信,并请求断开连接,此时客户端处于FIN-WAIT状态。第二次挥...

2019-01-15 18:24:39 108

原创 TCP三次握手

TCP(Transmission Control Protocol 传输控制协议) 三次握手是一个老生长谈的问题,此处也讲一讲,让自己再次加深一下记忆并深化讲一下。这里先引用一个从朋友那里看到的例子:A和B进行通信A:您好,我是AB:您好,我是BA:您好 B我们也常称为“请求-应答-应答之应答”的三个回合,这个说起来简单,其实里面还是有很多的学问,很多的细节。首先,为什么要...

2019-01-15 11:18:31 202

原创 三种方式 解决生产者消费者问题

这里讲解使用三种方式来解决生产者消费者问题什么是生产者消费者问题:        生产者消费者问题(Producer-consumer problem),也称有限缓冲问题(英语:Bounded-buffer problem),是一个多线程同步问题的经典案例。该问题描述了两个共享固定大小缓冲区的线程——即所谓的“生产者”和“消费者”——在实际运行时会发生的问题。生产者的主要作用是生成一定量的...

2019-01-13 14:35:29 1512

原创 设计模式之装饰器模式

这篇讲解装饰器模式。

2019-01-07 11:31:33 118

原创 设计模式之工厂模式

这篇讲解工厂模式。工厂模式:工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式。工厂模式可划分为:简单工厂模式、工厂方法模式、抽象工厂模式。一、简单工厂模式:又成为静态工厂模式,通常是由工厂实例根据传入参数来决定需要创建哪种产品类实例。    代码实现(根据条件不同创建不同车型的车辆):首先是我们的工厂类:CarFactory.javapacka...

2019-01-07 11:30:07 187

原创 设计模式之代理模式

这篇讲代理模式一、代理模式定义,代理模式:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。代理模式组成:     抽象角色: 通过接口或抽象类来声明真实角色实现的业务方法     代理角色:实现抽象角色,是真实角色的代理,通过真实角色的业务逻辑方法来实现抽象方法 并可以附件...

2019-01-07 11:29:03 154

原创 设计模式之单例模式

       打算把设计模式整一整,不然还是想不到什么时候该用哪种设计模式,在需要的时候想不到,在想到的时候不知道用在哪,所以还是经验缺少和概念模糊的缘故。单例模式:一个类有且仅有一个实例,并且自行实例化向整个系统提供。单例模式根据实现方式不同分为:懒汉方式、饿汉方式、静态内部类、枚举方式。1、懒汉方式:全局的单例实例在第一次被使用时构建。 ① 最常见的懒汉方式(线程不安全的):...

2019-01-07 11:27:02 100

原创 Spring Boot整合CXF项目

                                                                                                                     2018年12月29日,元旦放假,浙江绍兴昨天做了一个Spring Boot整合CXF的简单小栗子。今天放假没事,跑妈妈这边来玩,晚上趁着这个雪天没事,记录一下项...

2018-12-30 22:01:48 797

原创 Maven中dependency(依赖)的scope(作用域)

一、作用域列举Maven官网介绍:There are 6 scopes available:compile This is the default scope, used if none is specified. Compile dependencies are available in all classpaths of a project. Furthermore, those...

2018-12-28 19:12:45 2901

转载 WebServices简介

先给出一个概念 SOA ,即Service Oriented Architecture ,中文一般理解为面向服务的架构,既然说是一种架构的话,所以一般认为 SOA 是包含了运行环境,编程模型,架构风格和相关方法论等在内的一整套新的分布式软件系统构造方法和环境,涵盖服务的整个生命周期。而在 SOA 的架构风格中,服务是最核心的抽象手段。SOA 中的服务是构建在一些列基于开放标准的基础...

2018-12-27 18:18:51 8948 1

原创 SOAP WebService和RestFul 的区别

一、WebService涉及的相关概念:1、Soap:简单对象访问协议(Simple Object Access Protocol,SOAP)是一种基于 XML 的协议,由Dave Winer, Don Box,Bob Atkinson, Mohsen Al-Ghosein于1998年设计,当时只作为一种对象访问协议。现在SOAP采用了已经广泛使用的两个协议:HTTP 和XML(标准通用标记语...

2018-12-27 00:20:42 3930

转载 Quartz详解

目录:      一、Quartz 基本介绍           1.1 Quartz 概述           1.2 Quartz特点           1.3 Quartz 集群配置    二、Quartz 原理及流程           2.1 quartz基本原理           2.2 quartz启动流程   三、Spring + Quartz ...

2018-12-21 10:28:34 1833

RabbitMQ windows64位 安装包

这里是最新的RabbitMQ windows64位的安装包。RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库

2019-04-11

空空如也

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

TA关注的人

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