自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 spring IOC 源码阅读(六)之单实例bean的创建

在创建完事件传播器并将所有ApplicationListener注册到时间传播器中后,就开始创建剩余的单实例bean了。剩下会通过调用beanFactory的preInstantiateSingletons方法进行创建protected void finishBeanFactoryInitialization(ConfigurableListableBeanFactory beanFactory) { ...... //创建剩余的单实例bean beanFactory.preIn

2020-07-15 01:41:32 200

原创 spring IOC 源码阅读(五)之初始化传播器

接下来看初始化事件传播器和将所有ApplicationListener注册到时间传播器中这两块内容初始化事件传播器如果容器中已经有名称为applicationEventMulticaster的单实例bean或者BeanDefinition,则通过beanFactory.getBean()获取bean对象,并赋值给成员变量applicationEventMulticaster 如果容器中没有,则创建一个SimpleApplicationEventMulticaster类型的对象赋值给成员变量appl

2020-07-13 13:47:32 110

原创 spring IOC 源码阅读(四)之registerBeanPostProcessors(beanFactory)

执行完BeanFactoryPostProcessors之后,就要向容器中注册BeanPostProcessor了首先获取到所有BeanPostProcessor的名称 遍历这些BeanPostProcessor 如果是PriorityOrdered级别的,那就创建这个bean并添加到priorityOrderedPostProcessors 集合中区 如果是Ordered级别的,则将beanName添加到orderedPostProcessorNames 集合中 如果既不是Priority

2020-07-13 01:22:23 180

原创 spring IOC 源码阅读(三)之invokeBeanFactoryPostProcessors(beanFactory)

做完beanFactory的创建,接下来就是执行BeanFactoryPostProcessors的接口执行BeanDefinitionRegistryPostProcessor类型的BeanFactoryPostProcessors 从beanFactory中获取到所有BeanDefinitionRegistryPostProcessor类型的beanName 首先获取到所有PriorityOrdered级别的BeanDefinitionRegistryPostProcessor,并通过be

2020-07-13 01:17:38 148

原创 spring IOC 源码阅读(二)之创建beanFactory及初始化

在上一节中我们看来refresh()方法的作用,其中第一步就是创建并初始化beanFactory在refresh()有行代码是做了创建并初始化beanFactory的工作//创建beanFactory ConfigurableListableBeanFactory beanFactory = obtainFreshBeanFactory(); //BeanFactory的预准备工作prepareBeanFactory(beanFactory);首先先obtainFreshBeanFac

2020-07-13 01:12:48 227 1

原创 spring IOC 源码阅读(一)之refresh()

从AnnotationConfigApplicationContext开始看springIOC源码下面是一个简单的spring的代码@Configurationpublic class SpringConfig { @Bean public Bean1 bean(){ return new Bean1(); } public static void main(String[] args) { AnnotationConfigApplicationContext applicati

2020-07-13 00:54:09 136

原创 netty源码阅读(二)之服务端启动——创建并初始化服务端Channel

服务端启动可以分为四个步骤1)创建服务端Channel2)初始化Channel3)注册Selector4)绑定端口1、创建服务端Channel  在上一节的服务端demo中可以看到调用了ServerBootstrap的bind方法,这个个方法就是服务端启动的入口,进入这个方法一路追寻下去最终调用了doBind方法: public ChannelFuture b...

2018-08-05 23:50:29 230

原创 netty源码阅读(一)之NioEventLoop创建

下次再v

2018-08-01 00:08:26 217

原创 我的自定义控件之旅——自定义进度条

上次做一个项目看到一个很简约的进度条,然后就做了一个,结果发现这个进度条网上的做法有好多,不过也不管了,毕竟是自己亲手做的微笑先来看看样子 一、首先讲下要用到的两个函 在自定义中最重要的就是onMeasure、onDraw以及onLayout了,此次我们用到的是前两个 onMeasur():这个方法是用来测量View的大小的(宽高) 用户在这个函数里先计

2017-08-06 20:20:44 326

空空如也

空空如也

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

TA关注的人

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