- 博客(11)
- 收藏
- 关注
转载 3. 无重复字符的最长子串
给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: s = "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: s = "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: s = "pwwkew"输出: 3解释: 因为无重复字符的最长子串是"wke",所以其长度为 3。 请注意,你的答案必须是...
2021-12-06 22:22:46
68
原创 1. 两数之和
给定一个整数数组 nums和一个整数目标值 target,请你在该数组中找出 和为目标值 target的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。示例 2:输入:nums = [3,2,4], tar...
2021-12-06 21:34:08
80
原创 getBean方法(三)
上次主要看了doCreateBean方法中的instanceWrapper = createBeanInstance(beanName, mbd, args);这个方法,接下来这样分析的是 doCreateBean方法的接下来的方法. applyMergedBeanDefinitionPostProcessors(mbd, beanType, beanName); //CommonAnnotationBeanPostProcessor支持了@...
2021-06-03 22:14:09
113
原创 getBean方法(二)
这次这要分析的是 createBean ()方法中的核心方法docreateBean()方法resolveBeforeInstantiation()这个方法中没有返回bean的实例的话,就走下面的核心方法doCreateBean创建bean,protected Object doCreateBean(String beanName, RootBeanDefinition mbd, @Nullable Object[] args)throws BeanCreationExce...
2021-05-30 23:11:55
219
原创 getBean方法(一)
我们先看看这个方法的轮廓流程这个getbean的轮廓方法很长. 先分两种情况: 一种是在缓存实例中能拿到bean, (主要是factroyBean的处理, 执行所有已注册的 BeanPostProcessor 的 postProcessAfterInitialization 方法) 前边是校验 (如果name以“&”为前缀,但是beanInstance不是FactoryBean,则抛异常...
2021-05-26 23:04:24
828
原创 finishBeanFactoryInitialization 方法流程总结(一) getBean之前 2021-05-26
这个方法是spring中最重要的方法,功能点1.bean的实例化过程2.ioc3.注解支持4.BeanPostProcessor的执行5.AOP的入口这个方法会把所有的非懒加载的bean的单例bean加载,除了前面学过的两个接口实现类( BeanFactoryPostProcessor接口, BeanPostProcessor接口),还有就是一些内部bean下面是代码流程preInstantiateSingletons方法的核心代码 ...
2021-05-26 21:22:27
140
原创 registerBeanPostProcessors(beanFactory) 方法流程总结 2021-05-16
/** 把实现了BeanPostProcessor接口的类实例化,并且加入到BeanFactory中** BeanPostProcessor(后置处理器) 的注册,* 此方法就是把实现 BeanPostProcessor 接口的类,* 提前实例化,这个接口 类里面有两个方法,可以进行相应的操作,* bean 实例化前的操作,以及 bean 实例化后的操作,* 这个实例化在其他正常的 实例化方法之前,* 比如可以阻止其他 bean 的 IOC 依赖注入,* 把实现了 Bea
2021-05-16 22:08:01
401
原创 invokeBeanFactoryPostProcessors方法总结 2021-05-16
/** 在 xmlBeanDefinition 解析后,实例化之前,可用此接口完成对 beanDefinition 的动态修改。* BeanDefinitionRegistryPostProcessor 对bean的增删该查的借口* BeanFactoryPostProcessor* 完成对这两个接口的调用** 对上面接口的理解:获取 BeanDefinitionRegistry 对象,* 获取到这个对象就可以获取这个对象中注册的所有 BeanDefinition 对...
2021-05-16 21:24:33
232
原创 spring中refresh方法总流程
/** 该方法是spring容器初始化的核心方法。是spring容器初始化的核心流程,是一个典型的父类模板设计模式的运用* 根据不同的上下文对象,会掉到不同的上下文对象子类方法中** 核心上下文子类有:* ClassPathXmlApplicationContext* FileSystemXmlApplicationContext* AnnotationConfigApplicationContext* EmbeddedWebApplicationContext(spring
2021-05-16 13:52:56
594
原创 obtainFreshBeanFactory方法总结
这个方法主要有两大作用: 1,创建BeanFactory对象 2,解析xml标签并且封装成BeanDefinition对象 1).对传统标签的解析(bean,import等) 2).对自定义的标签解析如:<context:component-scan base-package="com.xiangxue.jack"/>...
2021-05-16 13:10:39
262
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人