![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
杂谈
皇甫嗷嗷叫
励志架构师
展开
-
急速入门Docker使用大法
一、基础命令1. 帮助命令docker --version # 显示docker的版本信息docker info # 显示docker的系统信息docker 命令 --help # 显示帮助命令2. 镜像命令2.1 搜索镜像# 搜索镜像docker search mysql# 条件过滤搜索结果docker search --filter=STARS=5000列表解释NAME: 镜像名称DESCRIPTION: 镜像介绍STARS: 镜像的starsOFFI原创 2020-09-07 09:41:02 · 131 阅读 · 0 评论 -
面试问倒无数人的Spring事务问题,就被你这样说完了?
一、随便聊聊又是一周过去了,对于这周的收获你还满意吗?相信一直看我文章的小伙伴都知道,Spring源码精读系列的文章已经写了好多篇了,今天依旧是和以前一样,我们来分析Spring对于事务的管理!使用过Spring的小伙伴都应该知道,Spring可以通过配置或者再方法上加一个@Transactional注解,然后Spring就能够自动的对里面的JDBC操作进行管理,或提交或回滚!可能有些阅读过部分源码或者看过一切类似的文章的额同学应该知道他是基于AOP完成的对事务的管理,但是对于其实现的细节却不是很明白,原创 2020-08-30 18:38:45 · 694 阅读 · 0 评论 -
听说你一读Spring源码就懵逼?我帮你把架子搭好了,你填就行!
最近断更了一段时间,因为公司比较忙,周五的时候在公司做了一个关于Netty的分享,后续会总结一下分享出来!最近一段时间发现经常看到很多人,对Spring源码比较感兴趣,日常开发中,无论你做什么什么项目,大部分都离不开Spring生态的那一套东西,所以很多人对Spring底层源码实现很感兴趣,但是有些从来没有接触过源码的开发者,在看Spring源码的过程中确实及其难受的,为什么,大部分人看源码基本都是debug一点一点去看的,最后发现,越追越离谱,越追越深,到最后都追到JDK源码了,也没有明白是什么意思!原创 2020-07-25 15:30:43 · 341 阅读 · 0 评论 -
MyBatis为了解决二级缓存脏读问题,究竟做了那些骚操作!
MyBatis为了解决二级缓存脏读问题,究竟做了那些骚操作!一、存在即合理MyBatis为了提高我们的查询性能,专门设计了一级缓存和二级缓存,众所周知,我们在开发环境中,使用的缓存的时候,也会遇到各种各样的挑战,比如缓存穿透,缓存雪崩,数据脏读等等各种各样的问题,MyBatis也同样,在设计二级缓存的时候,MyBatis也同样遇见了各种挑战;我这几天在观看MyBatis对于二级缓存的设计的时候,突然发现,我们查询出来一个数据后并没有直接放置到二级缓存中,而是放到了另外一个存储空间,只有提交了之后才会被原创 2020-07-10 15:23:51 · 1146 阅读 · 0 评论 -
你凭什么说Spring会导致MyBatis的一级缓存失效!
一、概述最近老是听说Spring和MyBtis集成后,一级缓存就不可用了!我就纳闷了,为什么一级缓存不可用呢?这难道是Spring的BUG?这引起了我极大的兴趣,因为Spring作为一个极其优秀的项目管理框架,它居然也有BUG,我要一探究竟,满足我的好奇心!二、真的没走缓存为了帮助我查看源码,我把MyBatis和Spring集成后写了如下代码:AnnotationConfigApplicationContext annotationConfigApplicationContext;@Before原创 2020-07-07 14:31:40 · 251 阅读 · 0 评论 -
MyBatis与设计模式的激情碰撞
最近一直在研究MyBatis的源码,MyBatis作为国内最为经常使用的持久层框架,其内部代码的设计也是极其优秀的!我们学习源码的目的是什么呢?一方面是对该框架有一个很深入的认识,以便在开发过程中有能力对框架进行深度的定制化开发或者在解决BUG的时候更加得心应手!一方面是学习代码里面优秀的设计,看看这些成名多年的框架,他们的开发者是如何设计出一个高扩展性、低耦合性的代码呢?然后在自己的开发场景中应用。今天我们就来讨论一下,在MyBatis内部,为了提高代码的可读性究竟做了哪些设计呢?当然,如果你对原创 2020-07-05 14:46:23 · 198 阅读 · 0 评论 -
天啦噜,项目上使用InputStream,我被坑了一把!
本文目的是为了记录,项目开发时的一个小BUG,如果你是大佬,或者对InputStream十分熟悉,那么可以忽略!今天开发项目的时候遇见了一个小BUG,该功能如下:读取指定FTP服务器里面的文件数据,并计算md5签名推送到备份FTP服务器以上功能涉及到公司项目功能实现,不能详细多说,大致功能就是这样,读取一个MD5同步到另外一个服务器,期间我遇到什么问题了呢?先看一个模拟的代码实现!package com.inputstreams;import org.apache.commons.code原创 2020-06-30 21:13:48 · 621 阅读 · 2 评论 -
求求你,别再开发的时候一用redis分布式锁,就急着去复制粘贴了!lua脚本的实现思路
随着业务越来越负责,现在的业务,能够支持分布式和高并发是基本的要求,涉及到高并发和分布式就一定会涉及到分布式锁机制,分布式锁就是为了保证分布式环境下,只有一个机器能够拿到锁对象,其余的都需等待该锁释放,再进行申请锁资源!分布式锁必须遵循以下原则:同一时刻只能有一个机器(进程或线程)能够拿到锁对象!拥有过期机制,防止机器宕机没有释放锁的情况下造成死锁!加锁和解锁的必须是一个机器(线程、进程)!集群环境下,存活机器依旧何以做完整的加解锁操作!一、思路图二、思路图实现1.正确实现该实现由原创 2020-06-25 18:38:13 · 368 阅读 · 0 评论 -
当一个http请求来临时,SpringMVC究竟偷偷帮你做了什么?SpringMVC处理器适配器与处理器篇章
SpringMVC之请求处理适配器与处理器源码分析上次的SpringMVC源码分析因为篇幅原因只将请求映射器的源码流程分析完毕,不知道大家对上次的流程分析有什么意见呢?空闲的时候是不是自己追了一遍源码嘞?先上图:上一篇文章,我将 Handler处理器映射器做了一个很详细流程分析,那么本篇文章会围绕处理器适配器、处理器两个流程来分析源码!1. 处理器适配器源码解析上篇文章其实后面也大概说了一下后面的大概逻辑,但是事实上,SpringMVC作为一个优秀的框架,他所考虑的是很全面的,其实在开发一个Co原创 2020-06-19 22:31:47 · 304 阅读 · 0 评论 -
市面上数据库种类那么多,如何选择?
技术真的是日新月异,关系型数据库在数据库存储界称霸这么多年后,市面上各种数据库如雨后春笋蓬勃发展,似乎关系型数据库也地位不保,我前段时间和同事聊天,听到他们经常说的现在市面上的noSql数据库完全可以替代现有的关系型数据库,可是事实真的如此吗,我们一起就市面上现在比较流行的各类数据库,做一个对比: 真正业务开发中,绝对不是拍脑袋定下来使用那种数据库就使用那种数据库的,选择某种或者某几种数据库配合使用,一定是对改数据库有一个比较全面的认识。 关系型数据警告过这么多年的原创 2020-06-17 11:39:14 · 734 阅读 · 0 评论 -
设计原则之开闭原则
基本介绍:对扩展开放对修改关闭,用抽象构建框架 用实现扩展细节!所谓对扩展开放,对修改关闭,其实是设计模式里面所重点提倡的,后续所有涉及模式的介绍其实都是为了程序能够更好的扩展,提倡设计模式的本质就是为了减少增加一点功能而修改系统的主要逻辑!用抽象构建框架 用实现扩展细节! 尽量通过扩展类的操作来实现行为变化,而不是通过修改已有代码来实现修改错误的示范下面还是老规矩,我们先看一段错误的代码!需求1:我需要一个过滤特殊字符的功能package principle.opencloeds.erro.原创 2020-06-02 16:55:35 · 183 阅读 · 0 评论 -
设计原则之单一职责
1. 单一职责原则基本介绍:一个类只负责一项职责,完成一个单一的功能。错误的示范package principle.singleresponsibility.error;/** * 单一职责错误示范 * @author huangfu */public class SingleResponsibilityError { public void mobile (String vehicle){ System.out.println(vehicle + "在公路上跑原创 2020-06-01 13:15:29 · 223 阅读 · 0 评论 -
一篇文章带你彻底搞懂NIO阻塞
什么是NIOJava NIO (New IO)是 Java 的另一个 IO API (来自 java1.4) ,意味着可以替代标准的 Java IO API和 Java Networking API。 提供了一种与标准 IO API 不同的 IO 工作方式。注意:Java的NIO只是说IO API,阻塞非阻塞才是IO的模型。也有人称NIO为No-Blocking IO,非阻塞IO,但是这...原创 2020-01-14 14:12:18 · 1428 阅读 · 0 评论