自定义博客皮肤

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

rabbitmq接收控制台发送的消息为一个字节字符串的问题

rabbitmq的控制台可以直接向指定队列发送消息,很方便我们在开发消费者的过程中进行调试,当我们在rabbitmq指定的queue中发送一条消息时: 而我们的接收端收到的消息却不是“我是中国人这段字符串”,而是它的字节字符串: -26,-120,-111,-26,-104,-81,-28,-7...

2019-09-03 09:18:37

阅读数 820

评论数 0

解决windows下Error:node with name "rabbit" already running on “XXX” 和管理页面打不开问题

背景:重启电脑后,发现rabbit的控制台页面无法打开,启动rabbit,抛如下异常: Error:node with name "rabbit" already running on “XXX” 这个是因为rabbit已经启动了,不能再次启动,通过tasklist指令,发现...

2019-09-02 12:44:41

阅读数 1022

评论数 1

mybatis的批量insert和update

批量insert <insert id="batchInsert" parameterType="java.util.List"> insert into 表名 (字段1,字段2,字段3……) values <for...

2019-09-02 12:43:40

阅读数 1005

评论数 0

spring源码-messageSource和监听器的初始化

这一节我们来看一下容器启动时messageSource的初始化和监听器的初始化。 这一节主要的源码分四块: initMessageSource(); initApplicationEventMulticaster(); onRefresh(); registerListeners(); 其中on...

2019-08-31 11:27:41

阅读数 1113

评论数 0

spring源码-4.注册bean的后处理器

执行完beanFactory的后处理器后,在实例化beanDefinition前,我们需要将bean的后处理器注册到容器中,这样才能在实例化beanDefinition的时候去执行这些后处理器。 首先我们来看一下这个方法的入口(AbstractApplicationContext): protec...

2019-08-31 11:27:05

阅读数 1166

评论数 0

spring源码-3.beanFactory后处理器

上一节我们已经讲完了beanFactory是如何初始化,并且是如何将需要注入到容器中的bean的beanDefinition注册到beanFactory中的。这一节我们再来看一下beanFactory的后处理器是如何运行的。 这里从初始化完beanFactory到beanFactory的后处理器的...

2019-08-31 11:26:06

阅读数 1146

评论数 0

从零学spring boot-springboot集成swagger

日常开发中,前后端的开发联调都需要定义一个接口文档,定义接口文档是比较耗时的,这边推荐一款插件来根据接口来自动生成接口文档,并且会根据接口的变化而自动更新,解放一部分开发人力。spring boot集成swagger非常简单,只需要以下四步: 1. 引入swagger依赖 <depe...

2019-08-26 17:22:33

阅读数 1138

评论数 0

解决github下载慢的问题

由于github是外网环境,所以很多时候,下载项目的时候会比较慢,通过以下几步,轻松提高github下载速度。 1. 查询ip 进入https://www.ipaddress.com,分别查询以下两个域名的ip (1) github.com (2) github.global.ssl.fastly...

2019-08-25 20:11:28

阅读数 1236

评论数 0

spring源码-2.3.自定义标签的解析

上一节已经详细的看了一下默认标签的解析了,这一节我们来看一下自定义标签是如何解析的。 首先,来看一下自定义标签解析的入口方法,delegate.parseCustomElement(ele): public BeanDefinition parseCustomElement(Element ele...

2019-08-25 20:07:23

阅读数 1119

评论数 0

spring源码-2.2.默认标签的解析

上一节中,我们详细分析了spring在解析xml,创建beanFactory的前期准备工作,这一节我们将会详细分析一下spring是如何解析系统默认标签的。 首先进入解析默认标签方法的入口,parseDefaultElement(Element ele, BeanDefinitionParserD...

2019-08-25 20:06:49

阅读数 1158

评论数 0

spring源码-2.1.解析xml准备

这一节我们来看一下obtainFreshBeanFactory都做了什么,这个方法主要就是创建了BeanFactory: protected ConfigurableListableBeanFactory obtainFreshBeanFactory() { //创建BeanFactory...

2019-08-25 20:06:15

阅读数 1149

评论数 0

spring源码-1.容器刷新前准备

这一节我们来看一下prepareRefresh方法都做了什么。 首先看一下这个方法的源码: protected void prepareRefresh() { //记录开始时间 this.startupDate = System.currentTimeMillis(); //设置状态 th...

2019-08-25 20:05:39

阅读数 1120

评论数 0

spring源码-xml解析概述

我们都知道ApplicationContext就是spring的容器,下面我们来看看spring容器是如何启动的。 首先我们来看一下查看的源码的一些背景: spring版本:spring5 启动的xml内容: <?xml version="1.0" encodin...

2019-08-25 20:05:01

阅读数 1131

评论数 0

推荐几款Intellij IDEA好用的插件

以下几款插件是我在开发中常用的,非常方便 ,这里分享一下。 1. Free Mybatis plugin 作用:再也不需要手动去寻找dao方法中对应的sql的xml的位置了,和正常的代码跟踪一样了。 2. MyBatis Log Plugin 作用:将sql语句完整的打出来,再也不需要我们自己...

2019-08-21 09:23:35

阅读数 1126

评论数 0

从零学springboot—— Conditional系列注解

1. @Conditional 首先来看一下@Conditional注解的源码: @Target({ElementType.TYPE, ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Documented public @inte...

2019-08-17 16:02:58

阅读数 1098

评论数 0

从零学springboot—— 如何在junit测试中只mock一部分类

假设有一个类A,我们要对其进行测试: class A{ private B b; private C c; @Value("${str}") private String str; } 如果我们想要mock调对B和C的调用...

2019-08-17 16:02:05

阅读数 1171

评论数 0

reentrantLock公平锁和非公平锁源码解析

ReentrantLock非公平锁源码分析 ReentrantLock lock = new ReentrantLock(); lock.lock(); 上面这段代码是最简单的获取ReentrantLock的非公平锁的代码,我们来看看这段代码后面的源码是如何运行的。 final void loc...

2019-05-22 19:50:09

阅读数 1218

评论数 0

深入理解synchronized实现原理

四种锁状态 无锁状态 偏向锁 轻量锁 重量锁 JVM是如何来识别锁状态的 synchronized关键字是一个对象锁,锁的状态以及谁持有锁,都是记录在这个对象中的,首先我们来看一下一个对象在内存中是如何组成的。 从上图可以看出,一个对象的对象头中除了指向该对象的Class对象的指针和数组长度...

2019-05-21 16:31:34

阅读数 1228

评论数 0

ArrayList和LinkedList的对比

List数据结构在实际开发中是非常常见的,其中Arraylist和LinkedList又是这种数据结构中最常见的,本篇文章将会从不同角度来记录讲解这两种list的实现方式及优缺点,以及在实际开发中该如何去选择

2019-04-13 12:38:21

阅读数 1190

评论数 0

如何动态修改docker的端口映射

docker的端口映射关系一般是在将镜像打开成容器的时候通过参数p来设置的,但是如果我们需要对已经在运行的容器进行端口映射的添加,那么就需要将容器从新打成镜像(可能对容器进行了修改),然后再转换成容器,这样就比较笨重,下面介绍一种通过修改配置的方式,动态的去修改docker容器的端口映射。 动态修...

2019-01-05 15:29:39

阅读数 2694

评论数 0

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