自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序员卢先生的博客

个人学习记录,学无止境

  • 博客(11)
  • 收藏
  • 关注

原创 spring--解决循环依赖

首先看下spring创建一个bean的简单流程,假如beanA引用beanB,beanB引用beanA,spring在初始化beanA的时候会造成循环依赖(这里讲的是单例,spring底层只对单例循环依赖进行解决)。 在记录之前我写了两个测试类进还原循环依赖,一个是ClassA,里面的引用了ClassB,同时ClassB也引用了ClassA。这样子ClassA和ClassB...

2019-09-02 09:55:30 275

原创 多线程FutureTask,看完这篇就够了

笔者今天学习FutureTask包装器,简单点讲该包装器就是对底层线程任务执行的包装,包括返回值,异常抛出等。比如说我们现在有个任务需要交个run方法进行执行,这时候我们调用Thread的start方法,然后JVM开启一个线程帮我们执行该方法,但是run返回值为void,并且不能抛出异常,这是就需要包装器对其进行包装。今天笔者就来自己实现下FutureTask简单的底层实现原理。 ...

2019-09-06 15:03:02 1059 2

原创 mybatis_运行原理_查询实现

mybatis接口是编程是利用jdk动态来实现的 1.代理对象不管执行哪个方法都会执行mapperProxy的invoke方法,判断当前执行器的方法是否是Object类的方法,因为代理对象的方法一部分是从需要代理的接口中实现过来的,另一部分是Object里面的方法比如equals、toString等方法。 2.接着将Method包装成MapperMethod对象,该对象包含sqlCommand和...

2019-09-05 13:34:59 186

原创 java多线程之线程创建方式

笔者从今天开始学习java多线程,从入门到放弃。今天我们先记录java多线程的创建方式。java多线程的创建方式,可以分为四类。继承Thread类、实现Runnable接口、实现Callable接口通过FutureTask包装器来创建Thread线程、使用java提供的Executors工具获取线程池对象,从中获取线程。1、继承Thread类创建线程 Thread本身实...

2019-09-04 10:49:26 160

原创 spring--BeanPostProcesstor

beanFactoryPostProcesstor和BeanPostProcessor是spring的钩子函数,是spring的bean初始化对外暴露的扩展点。 BeanPostProcessor是Spring IOC容器给我们提供的一个扩展接口。 如图,我们可以看到BeanPostProcessor提供了两个接口回调。当BeanPostProcessor的实现类注册到spring ioc容器中...

2019-09-03 08:16:33 623

原创 spring--BeanDefinition

java中的类的数据结构信息存储在每个对应的Class对象中,而spring将扫描或解析xml的bean信息存储在BeanDefinition,每个bean对应一个BeanDefinition。BeanDefinition里面记录了每个bean的基本信息包括是否单例、作用域、是否抽象(spring允许普通类被定义成抽象类型)、是否懒加载等。 继承结构图如下: spring中注册BeanD...

2019-09-01 22:53:35 114

原创 spring--beanFactoryPostProcesstor

beanFactoryPostProcesstor和BeanPostProcessor是spring的钩子函数,是spring的bean初始化对外暴露的扩展点。 spring IOC容器允许BeanFactoryPostProcessor在容器初始化任何bean之前读取bean的定义并且修改其定义,比如将懒加载改为true等。只要实现了BeanFactoryPostProcessor接口,并且重...

2019-08-31 11:25:24 192

原创 spring--FactoryBean

FactoryBean和BeanFactory经常面试都会问到区别是什么。BeanFactory我们都知道spring IOC核心容器里面存储了很多关于bean的信息。我们平常getBean都是从这个容器获取的。而FactoryBean是spring IOC 容器提供的特殊bean这个bean可以说了某个bean的包装,它既是一个bean也可以产生bean。 FactoryBean接口提供三个方...

2019-08-30 10:38:37 75

原创 mybatis如何利用spring扩展点进行整合

mybatis会为每个mapper接口生成动态代理。每个动态代理对象都会持有sqlSession的引用。那么mybatis如何将自己生成的代理对象交给spring管理呢? spring和mybatis整合的时候,主要有两点:1.@MapperScan@MapperScan 我们看到使用@Import注解,该注解直接往spring容器注入ImportBeanDefinitionRegistear的...

2019-08-29 09:19:10 1165

原创 spring--ImportBeanDefinitionRegistrar

ImportBeanDefinitionRegistrar是spring对外提供动态注册beanDefinition的接口,spring内部大部分套路也是用该接口进行动态注册beanDefinition的。 ImportBeanDefinitionRegistrar接口不是直接注册Bean到IOC容器,它的执行时机比较早,准确的说更像是注册Bean的定义信息以便后面的Bean的创...

2019-08-29 09:18:37 745

原创 spring IOC之FactoryBean

** spring–FactoryBean FactoryBean和BeanFactory经常面试都会问到区别是什么。BeanFactory我们都知道spring IOC核心容器里面存储了很多关于bean的信息。我们平常getBean都是从这个容器获取的。而FactoryBean是spring IOC容器提供的特殊bean这个bean可以说了某个bean的包装,它既是一个bean也可以产生bean...

2019-08-23 11:03:51 138

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除