为什么双重检查锁模式需要 volatile ?

双重检查锁定(Double check locked)模式经常会出现在一些框架源码中,目的是为了延迟初始化变量。这个模式还可以用来创建单例。下面来看一个 Spring 中双重检查锁定的例子。这个例子中需要将配置文件加载到 handlerMappings中,由于读取资源比较耗时,所以将动作放到真正需要 handlerMappings 的时候。我们可以看到 handlerMappings 前面使用了v

- 阅读全文 -

浅谈MySQL的七种锁

一、共享锁(S锁)/排他锁(X锁)    事务拿到某一行记录的共享S锁,才可以读取这一行,并阻止别的事物对其添加X锁    事务拿到某一行记录的排它X锁,才可以修改或者删除这一行    共享锁的目的是提高读读并发    排他锁的目的是为了保证数据的一致性二、意向锁1、意向共享锁    预示事务有意向对表中的某些行加共享S锁2、意向排他锁    预示着事务有意向对表中的某些行加排他X锁3、 IS、S

- 阅读全文 -

Spring源码解析(1):Bean容器

这一篇开始,正式进入Spring源码解析。本系列主要讨论单例Bean。需要的知识储备有:如何阅读Spring源码Spring基础(1):两个概念Spring基础(2):放弃XML,走向注解Spring基础(3):复习尚硅谷Spring注解开发视频_雷丰阳老师源码之所以难,是因为体量庞大、抽象层次深。如果之前从来没看过,很难有全局观。本系列采用先局部,再整体,再局部的方式展现Spring的源码。今天

- 阅读全文 -

Spring基础(3):复习

为了让大家更容易接受我的一些观点,上一篇很多笔墨都用在了思路引导上,所以导致文章可能比较臃肿。这一篇来总结一下,会稍微精简一些,但整体趣味性不如第二篇。(上一篇说过了,目前介绍的2种注入方式的说法其实不够准确,后面源码分析时再详细介绍)主要内容:如何把对象交给Spring管理依赖注入自动装配<bean>、@Component还是@Bean聊一聊@ComponentScan如何把对象交给

- 阅读全文 -

Spring基础(2):放弃XML,走向注解

上一篇并没有实际地带大家去看源码,而是介绍了两个概念:BeanDefinitionBeanPostProcessor当然,我介绍得非常笼统,不论是BeanDefinition还是BeanPostProcessor其实都有着较为复杂的继承体系,种类也很多。作为Spring系列第一篇,主要目的还是帮大家摆脱对Spring的刻板认知,刷新你们的三观,毕竟太多人对Spring的理解仅限于所谓的IOC和AO

- 阅读全文 -

如何阅读Spring源码

主要内容:必要的知识储备让扁平的文字立体起来画中有话“黄老师脸盲,看谁都能想到明星”源码阅读的几个原则必要的知识储备去年(2018)我花了很多时间在SSM上面,因为和大部分人一样,面对一大堆配置我感到手足无措,不知道什么是什么,也不知道它为什么起作用。其实归根到底,我们之所以学不明白SSM,觉得隔靴搔痒,个人认为是因为“配置式开发”和我们之前“编码式开发”差别太大了。不论是xml还是注解,和我们平

- 阅读全文 -

来,看看MySQL 5.6, 5.7, 8.0的新特性

对于MySQL的历史,相信很多人早已耳熟能详,这里就不要赘述。下面仅从产品特性的角度梳理其发展过程中的里程碑事件。1995年,MySQL 1.0发布,仅供内部使用。1996年,MySQL 3.11.1发布,直接跳过了MySQL 2.x版本。1999年,MySQL AB公司成立。同年,发布MySQL 3.23,该版本集成了Berkeley DB存储引擎。该引擎由Sleepycat公司开发,支持事务。

- 阅读全文 -

谈谈我与 Intellij IDEA 的故事

说到这款 IDEA,很早就想写一篇关于它的文章了,可不知从何处写起,刚好一位师弟问起我来,正好写一篇入门文章,本文的涉及的快捷键主要针对于 Windows系统「因大部分读者都在使用此系统」。相识IntelliJ IDEA 于 2001 年 1 月诞生,并在 3.0 版本之后屡次获得各类大奖,从而奠定了它在 IDEA 中地位。而我与它相识是在 12 年,那会儿我还在实验室里面用 eclipse 写

- 阅读全文 -

IntelliJ IDEA 插件汇总

感谢IDEA,让我们写代码更浪~~~接下来,主要介绍一下IDEA的一些炫酷的插件,IDEA强大的插件库,不仅能给我们带来一些开发的便捷,还能体现我们的与众不同。# 插件的安装打开setting文件选择Plugins选项Ctrl + Alt + SFile -> Setting分别是安装JetBrains插件,第三方插件,本地已下载的插件包。# 各种插件1、activate-power-mod

- 阅读全文 -

BeanFactory 简介以及它 和FactoryBean的区别(阿里面试)

BeanFacotry是spring中比较原始的Factory。如XMLBeanFactory就是一种典型的BeanFactory。原始的BeanFactory无法支持spring的许多插件,如AOP功能、Web应用等。 ApplicationContext接口,它由BeanFactory接口派生而来,ApplicationContext包含BeanFactory的所有功能,通常建议比BeanFa

- 阅读全文 -