- 博客(18)
- 收藏
- 关注
翻译 什么是垃圾回收器
目录1. 什么是垃圾回收器?2. 手动内存管理2.1 智能指针3. 自动内存管理3.1 引用计数4. 标记和扫描1. 什么是垃圾回收器?关于垃圾回收器第一印象正如它的名字所暗示的——寻扎垃圾并且丢弃它们。但实际上它并不是这样的。垃圾回收器追踪所有正在使用的对象,并将其余的对象标记为垃圾。考虑到这一点,我们开始深入探究被称为“垃圾回收”的内存自动回收机制在Java虚拟...
2019-10-08 17:34:30
437
原创 SQL执行顺序
SELECT * FROM user LEFT JOIN order ON user.id = order.uid WHERE order.price > 1000 GROUP BY user.name HAVING count(1) > 5 ORDER BY user.name LIMIT 0,10;执行顺序:1. FROM : 如果FROM 后面是1张表,那么直接...
2019-05-05 14:57:32
257
原创 【一】java设计模式之---单例模式的四种写法
前几种你也许见过,但是最后一种你搜完百度前20页也不一定有。^.^目录1. 懒汉式2. 饿汉式3. 静态内部类(痴汉式)5. 枚举5.1 枚举单例饿汉式5.2 枚举单例懒汉式1. 懒汉式public class SingletonHodey{ private volatile static SingletonHodey instance = new ...
2019-04-03 23:00:04
280
原创 【三】MyBatis-Spring最全源码详解之SQL执行流程
前面两篇系列文章已经详细介绍了Mapper接口的扫描过程和对应bean的创建过程。本文重点介绍mybatis执行SQL的过程。DaoService的selectByName方法,拿到的personMapper对象已经是上文介绍的那个superMapperProxy对象。执行personMapper.selectByName(personName)方法,其实就是执行的superMapperPro...
2019-03-16 17:06:57
916
4
原创 【二】MyBatis-Spring最全源码详解之Mapper的自动注入
目录1.MapperFactoryBean的实例化1.1 Springboot自动配置与@Bean方法的扫描1.2 sqlSessionFactorybean与SqlSessionTemplate的创建2. Mapper的依赖注入2.1 从MapperFactoryBean中获取对象2.2 postProcessObjectFromFactoryBean3. 总结...
2019-03-14 21:58:55
7939
原创 【一】MyBatis-Spring最全源码详解之@MapperScan到底在弄啥
目录1. invokeBeanFactoryPostProcessors2. MapperScannerRegistrar#registerBeanDefinitions3. ClassPathMapperScanner#processBeanDefinitions4. 附录:项目文档在Springboot项目中使用MyBatis往往会使用@MapperScan("packag...
2019-03-13 21:23:53
3457
2
原创 【二】Spring AOP 最全源码详解之创建代理对象
目录1. 判断是否需要被代理2. 创建代理类createProxy3. 附录:本工程项目文件前在《【九】Spring IoC 最全源码详解之initializeBean》中提到过创建Spring AOP代理对象的留下就在执行bean后置处理器的postProcessAfterInitialization方法中。更具体一点是执行AnnotationAwareAspectJAutoPr...
2019-03-09 15:34:58
958
4
原创 【一】Spring AOP 最全源码详解之AOP元数据解析
目录1.findCandidateAdvisors2.buildAspectJAdvisors2.1. 创建一个MetadataAwareAspectInstanceFactory对象2.2. getAdvisors(factory)2.3getAdvice3. 附录:本工程项目文件bean创建过程中,在createBean步骤的resolveBeforeIns...
2019-03-08 14:48:09
1563
原创 【九】Spring IoC 最全源码详解之initializeBean
如果bean的依赖注入完成比作进化出猴子,那么最后的bean初始化过程就是给猴子穿上了衣服,变成了人。目录1.实现Aware接口对bean的设置2.依次回调bean后置处理器的postProcessBeforeInitialization方法2.1ApplicationContextAwareProcessor2.2ImportAwareBeanPostProces...
2019-03-06 21:59:24
2060
原创 【八】Spring IoC 最全源码详解之bean的循环依赖
先有鸡还是先有蛋,这是一个问题。目录1. 什么是循环依赖2. Spring针对循环依赖的解决方案2.1 亚当的登场2.2 夏娃的诞生2.3 寻找亚当2.4 完成亚当的创建3. 附录:本项目工程文件1. 什么是循环依赖你中有我,我中有你,就是循环依赖。举个例子,本文使用的项目中“yadang”与“xiawa”这两个bean就是循环依赖的(参考附录)。Cla...
2019-03-01 19:51:54
655
3
原创 【七】Spring IoC 最全源码详解之bean的依赖注入
上篇文章,我在开头将bean实例化过程比喻成寒武纪生命大爆发。如果你同意这个看法的话,那本文解析的bean的依赖注入就是生命的形式生物从两栖进化到爬行,从爬行进化到哺乳,从哺乳进化到类人猿,从低等进化到高等的过程。本文撰写累计时常10小时,建议阅读时间5小时。去趟卫生间,等你回来我们就开始吧。目录1. applyMergedBeanDefinitionPostProcessors...
2019-02-27 19:25:24
1662
2
原创 【六】Spring IoC 最全源码详解之bean实例化过程
如果将Spring初始化过程中创建bean之前的准备工作比喻成生命从无到有,从单细胞生命变为多细胞生命,从海洋蔓延到陆地,从……的话,那么本章即将介绍的bean实例化过程就是寒武纪生命大爆发!目录1.getBean2.createBean3.createBeanInstance3.1 寻找构造函数进行实例化3.1.1 利用默认构造函数实例化3.1.2 利用带参构造函...
2019-02-23 22:01:15
2203
2
原创 【五】Spring IoC 最全源码详解之registerBeanPostProcessors
目录1. BeanPostProcessor是什么2. 流程详解3.BeanPostProcessor的作用本节将继续按照refresh()方法中的执行顺序,分析BeanPostProcessor的注册过程。1. BeanPostProcessor是什么public interface BeanPostProcessor { default Object postPro...
2019-02-21 12:44:40
1018
原创 【四】Spring IoC 最全源码详解之 invokeBeanFactoryPostProcessors与ConfigurationClassPostProcessor扫包
地球形成 距今46亿年地球冷却形成地壳 距今39亿年~25亿年生命出现 距今35亿年前细菌的出现 距今30亿年前光合作用 距今20亿年前多细胞生物 距今16亿年前生命登上陆地 距今5亿年前鱼类出现 距今5亿年前植物出现 ...
2019-02-17 18:23:38
1007
1
原创 【三】Spring IoC 最全源码详解之 prepareBeanFactory
工欲善其事,必先利其器。 —— 《论语·卫灵公》 本文将开始介绍refresh()方法。public AnnotationConfigApplicationContext(Class<?>... annotatedClasses) { this(); register(...
2019-02-14 23:37:48
907
2
原创 【二】Spring IoC 最全源码详解之 register
如果我有8小时的时间砍一棵树,我就会花费6小时磨利自己的斧子。” ——亚伯拉罕·林肯 public AnnotationConfigApplicationCo...
2019-02-11 23:55:35
982
原创 【一】Spring IoC 最全源码详解之 Spring容器创建流程
《圣经》旧约.创世纪:起初,神创造天地。地是空虚混沌,渊面黑暗; 神的灵运行在水面上。神说:“要有光。”就有了光。 神看光是好的,就把光暗分开了。 神称光为昼,称暗为夜。有晚上,有早晨,这是头一日。 ...
2019-01-31 23:55:59
1233
1
原创 关于Spring自动装配几个你所不知道的事
目录1. 自动装配类型2、@ Autowired 与 @Resource2.1 @Autowired2.2 @Resource3. 单例与原型的混合装配1. 自动装配类型Spring官网对于自动装配的类型说明如下:no 无自动装配(默认)。在大规模项目中Spring不建议修改该默认值。因为这种方式明确了各个bean之间的协同关系,能让层次更加清晰。也...
2019-01-22 23:12:22
763
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人