![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
源码剖析
文章平均质量分 90
咕咚0203
没有什么是一个涨停解决不了的事,如果有那就两个涨停……✌
展开
-
Spring Boot源码剖析
一、概述Java程序员们对SpringBoot这个框架再熟悉不过了,它最大的特点就是自动配置、内嵌容器、可插拔式插件等等……这些特点使得Spring Boot能够做到快速开发,大大提高开发者的效率,今天这篇我来分享一下Spring Boot的启动流程。二、Spring Boot核心注解上篇我们自定义了一个spring-boot-starter,用大白话说这就是一个“自定义的可插拔式spring boot插件”,那么spring boot项目启动时是如何自动加载这些“可插拔式插件”的呢?接下来我.原创 2021-05-20 19:29:57 · 233 阅读 · 0 评论 -
MyBatis源码剖析
一、概述MyBatis之所以受到众多开发者的青睐,源于其使用方便、简单的特点。这篇我们从源码的角度来剖析下MyBatis的实现原理。二、源码剖析我们用上篇简单的案例,通过debug模式来探究下Mybatis的底层实现,首先先观察下测试类,如下图简单解析下:该方法第26行通过我们输入的sqlMapConfig.xml来获取了一个InputStream对象,接着用这个InputStream对象通过SqlSessionFactoryBuilder来创建一个SqlSessionFactory对象原创 2021-04-07 08:57:00 · 133 阅读 · 2 评论 -
Spring MVC源码剖析二(深度剖析)
一、概述前面我们分析了Spring MVC执行的核心思想,其核心在DispatcherServlet这个类的doDispatch方法中,上一篇我们解析了doDispatch方法的功能和作用,这一篇我们来解析一下doDispatch方法里面的几个核心方法。二、方法详解首先我们分析下Handler和HandlerAdapter是如何获取的我们debug模式进入getHandler方法里面,如下图,我们可以观察到有三个Handler备选,程序会遍历三个Handler找出合适的Handler,最原创 2021-03-03 17:22:14 · 86 阅读 · 2 评论 -
Spring MVC源码剖析一(优势及核心思想)
一、概述MVC全称为Model View Controller,是一种用于创建Web应用程序表现层的设计模式。今天我们从源码的角度介绍一下Spring MVC。二、项目构建和之前介绍Spring框架一样,我们要了解Spring MVC的运行原理需要先搭建一个简单的项目,通过项目来加深自己对该框架的理解。下面我们搭建一个简单的Spring MVC项目,如下图(代码存放在码云上,链接:https://gitee.com/GPF1217/java-from-xiaobai-to-architect.g原创 2021-02-18 09:15:08 · 107 阅读 · 1 评论 -
Spring Aop源码剖析
一、概述前面两篇文章讲述了Spring框架中Bean的生成,其实这便是Spring IOC的核心了,Spring将创建好的Bean放入ConcurrentHashMap中,每次调用的时候去里面取出相关的实例,然后进行调用,这样做的好处可以避免对象的频繁创建,使开发变得更加简洁。Spring除了IOC这个特性以外,还有个大家所熟知的AOP功能,今天这篇文章就带大家来探究下Spring AOP的核心实现。二、项目构建在我们之前用来探究Bean创建过程的项目中,引入spring-aop等相关依赖。原创 2021-02-06 15:10:08 · 98 阅读 · 0 评论 -
Spring源码剖析二(Bean的创建)
一、概述上一篇文章剖析了Spring的部分源码,简述了Spring的启动流程。总结一下该流程就是:tomcat容器在启动的时候会加载我们项目中的web.xml文件,根据该文件配置的listener标签,启动ContextLoaderListener(Spring启动引导类),在该引导类里面有一个contextInitialized方法,通过这个方法来初始化Spring的各种环境。其中主要讲述了BeanFactory的创建流程。这一篇文章我们再继续跟踪一下Bean的创建流程。二、代码跟踪打开我原创 2021-01-31 14:39:32 · 78 阅读 · 0 评论 -
Spring源码剖析一(BeanFactory的创建)
一、概述从事Java开发的朋友一定都知道Spring框架。为什么Spring框架能受到如此多开发者的青睐呢?这得益于Spring提供的诸多便捷实用的功能如:IOC、AOP,并且其可扩展性使得集成第三方开源框架和类库变得异常简单。我们可以访问一下Spring官网【http://spring.io】通过官网的描述去详细了解它,这里就不再过多赘述。本篇就让我们来通过Spring的源码来探究下Spring的启动原理。二、构建Spring项目学习一个框架的基本流程首先是学会使用它,然后在使用中一步一步的探原创 2021-01-26 16:32:53 · 187 阅读 · 4 评论 -
HashMap源码剖析(Java8版本结构的变化以及优化)
HashMap是Java工程师使用频率最高的类型之一,同时在基础面试中也是出现频率最高的面试题之一。因为它涵盖了很多知识点,其中包含了散列、链表、树等多种数据结构,同时它在Java7和Java8两个版本的结构有差异,这一点也是面试官喜欢问它的原因之一。今天这篇文章就来带大家好好欣赏一下HashMap的底层实现。原创 2020-11-29 13:26:08 · 187 阅读 · 0 评论 -
ArrayList底层源码剖析
一、概述工作中我们会经常使用到集合,像ArrayList、LinkedList,也知道ArrayList相比于LinkedList它的查找、修改效率更高,但是新增、删除的效率不如LinkedList,究竟为什么会有这样的差别?希望通过这篇文章让你对这两种数据结构有更深刻的认识。二、结构差异首先从源码的角度来看(没有注明版本的情况下,默认为jdk1.8)public class ArrayList<E> extends AbstractList<E> ..原创 2020-11-16 11:12:39 · 141 阅读 · 0 评论