框架解析
文章平均质量分 94
风在哪
个人网站:https://www.wygandwdn.cn
欢迎来访问啊!
展开
-
AQS原理初探
AQS原理初探AQS全称为AbstractQueuedSynchronizer,如果直接按名字翻译的话就是抽象队列式同步器,AQS定义了一套多线程访问共享资源的同步器框架,许多同步类的实现都依赖于它,如ReentrantLock(可重入锁)、Semaphore(信号量)等等。它是构建锁或者其他同步组件的基础框架。可重入锁这里解释一下可重入锁:可重入锁就是如果某个线程已经获得某个锁,可以再次获取该锁而不会导致死锁。ReentrantLock以及synchronized都是可重入锁,其中Reentrant原创 2021-05-11 12:37:11 · 774 阅读 · 2 评论 -
浅析ReentrantLock
浅析JUC-ReentrantLock首先,我们来看看ReentrantLock的继承关系(通过idea查看):从上面的类图中,我们可以发现,ReentrantLock实现了Lock接口,通过Lock接口实现了更多可扩展性的锁操作,它有更加灵活的结构,并且支持Condition锁。ReentrantLock的内部类FairSync和NonfairSync继承自另一个内部类Sync,而Sync继承自大名鼎鼎的AQS,站在巨人的肩膀上实现了这一系列的锁机制。Lock首先我们来看看Lock接口。/*原创 2021-05-10 08:52:51 · 425 阅读 · 4 评论 -
浅析Spring Boot请求映射原理
浅析Spring Boot请求映射原理Spring Boot的底层还是Spring MVC,那么Spring Boot的请求映射就与Spring MVC是相同的,那就是根据DispatcherServlet完成了请求映射的功能。但是我们没有手动去配置DispatcherServlet对应的配置项,那么Spring Boot是如何加载的DispatcherServlet呢,这个答案就是之前讲解的Spring Boot自动装配。那么首先来看看自动装配的DispatcherServlet测试程序@Rest原创 2021-05-03 20:58:48 · 1075 阅读 · 0 评论 -
Spring Boot自动装配原理初探
Spring Boot自动装配原理初探Spring Boot自动装配主要是通过注解实现的,我们直到,Spring Boot启动类会有这样一个注解:@SpringBootApplication。在这个注解里面,除了Java的元注解以外,还有三个spring自定义的注解,分别是:@SpringBootConfiguration:标识该类是spring的配置类,是对@Configuration注解的包装@EnableAutoConfiguration:这是自动装配的关键注解,本文主要就是介绍这个注解@C原创 2021-05-01 21:31:42 · 314 阅读 · 0 评论 -
Spring源码系列(四):AbstractApplicationContext
Spring源码系列四:AbstractApplicationContext首先我们看看AbstractApplicationContext的继承体系:从上图来看,AbstractApplicationContext实现了ConfigurableApplication接口,而ConfigurationApplication接口继承自ApplicationContext、Lifecycle和Closeable,ApplicationContext又扩展了BeanFactory的功能,归根到底这些都是在帮原创 2021-04-24 10:41:41 · 1959 阅读 · 0 评论 -
SpringBoot-Jar包启动流程
Spring Boot Jar包启动流程启动流程概览首先,我们通过java -jar命令启动jar包,此时调用Launcher$AppClassLoader类加载器加载,此时涉及了MANIFEST.MF中Main-Class对应的属性然后构建Spring Boot加载器,通过调用LaunchedURLClassLoader类加载器加载jar包中/BOOT-INF/classes/和/BOOT-INF/lib/*.jar文件基于反射调用应用程序的启动方法,此时涉及了MANIFEST.MF中原创 2021-04-20 20:19:24 · 2811 阅读 · 0 评论 -
Spring源码系列:bean生命周期及循环依赖
1、Spring中bean的创建流程bean创建的简易流程如下所示:首先调用createBeanInstance方法进行bean的实例化然后调用populateBean进行属性的填充接着调用initializeBean进行后置处理最后调用getSingleton方法添加到单例池中以上createBeanInstance、populateBean和initializeBean均属于类org.springframework.beans.factory.support.AbstractAutowi原创 2021-04-14 11:22:41 · 353 阅读 · 0 评论 -
spring源码系列(三):FactoryBean
1、FactoryBean源码详解首先,我们来看看FactoryBean的源码:package org.springframework.beans.factory;/*由BeanFactory中的某些对象实现的接口,BeanFactory是Spring IOC容器的核心;如果bean实现了这个接口,它将被用作对象的工厂来公开,而不是直接作为bean实例来公开实现了该接口的bean不能被作为一个普通的bean使用。FactoryBean以bean的类型定义,但是它暴露的bean引用始终是由它通过原创 2021-04-13 09:09:07 · 361 阅读 · 0 评论 -
Spring源码系列(二):BeanDefinition对象
Spring源码系列二:BeanDefinition对象BeanDefinition可以看作是一个bean在Spring中的描述。首先大体介绍BeanDefinition这个对象,它描述了bean的一些基本信息,包括:bean的class名、作用域(单例、原型)、懒加载、FactoryBean、构造函数、属性值、描述以及bean的来源,spring会根据这些信息来实例化bean。BeanDefinition对象在org.springframework.beans.factory.config包下,我们原创 2021-04-11 20:11:52 · 703 阅读 · 0 评论 -
Spring源码系列(一):BeanFactory
Spring中的BeanFactory和ApplicationContextSpring通过配置文件或者注解描述Bean和Bean之间的依赖关系,利用Java的反射功能实例化Bean,并建立Bean之间的依赖关系。本文主要讲解BeanFactory和ApplicationContext,其中:BeanFactory是Spring框架最核心的接口,它提供了IOC的基本配置,ApplicationContext建立在BeanFactory的基础上,提供了更多面向应用的功能,它支持了国际化的信息,框架的事件原创 2021-04-08 19:20:28 · 522 阅读 · 0 评论 -
MyBatis原理初探
MyBatis原理初探SqlSessionFactoryBuilder对象每一个mybatis的应用程序都是SqlSessionFactoryBuilder,它是根据传入的对象创建SqlSessionFactory实例。在spring项目中,我们通常使用xml配置文件,通过xml文件创建Configuration对象,然后通过重载选取合适的build方法,进而创建SqlSessionFactory对象。此外,我们还可以通过Properties或者String对象创建SqlSessionFactory原创 2021-03-15 09:10:34 · 550 阅读 · 0 评论