
spring源码
文章平均质量分 74
浴缸灬
一个执着于编程的菜鸟
展开
-
spring源码深度解析之BeanDefinition加载(上)
源码下载spring各个版本下载地址:https://github.com/spring-projects/spring-framework/tagsspring加载入口spring有多种可以加载的方式,其中常见的就是下面3类读取xml配置,加载springApplicationContext ac = new ClassPathXmlApplicationContext(“spri...原创 2019-01-04 21:56:29 · 3018 阅读 · 4 评论 -
spring加载流程refresh之onRefresh()
onRefresh/** * 这个方法在当前版本没有实现 * 可能在spring后面的版本会去扩展 */onRefresh();是个空壳方法,在AnnotationApplicationContex上下文中没有实现,可能在spring后面的版本会去扩展。看截图可知,与Web上下文有关...原创 2019-03-21 21:51:05 · 4635 阅读 · 0 评论 -
spring加载流程refresh之initApplicationEventMulticaster()
初始化事件监听多路广播器初始化事件监听多路广播器注册SimpleApplicationEventMulticaster初始化事件监听多路广播器/** * 初始化事件监听多路广播器 */initApplicationEventMulticaster();注册SimpleApplicationEventMulticaster内容非常简单,先判断有没有自定义的ApplicationEve...原创 2019-03-21 21:30:37 · 2696 阅读 · 0 评论 -
spring加载流程refresh之initMessageSource()
国际化语言的支持,又不出国编程,暂不研究(先预留个空位置)。。。原创 2019-03-21 19:52:16 · 918 阅读 · 2 评论 -
spring加载流程refresh之registerBeanPostProcessors(beanFactory)
spring加载流程之注册BeanPostProcessor注册BeanPostProcessor缘起: 继spring执行了BeanFactoryPostProcessor后spring加载流程refresh之invokeBeanFactoryPostProcessors(beanFactory),接下来就是注册BeanPostProcessor注册BeanPostProcessor/**...原创 2019-03-21 19:47:23 · 2059 阅读 · 4 评论 -
spring加载流程refresh之finishBeanFactoryInitialization(beanFactory)
实例化所有BeanAbstractApplicationContext.finishBeanFactoryInitialization()判断是否有bdName为conversionService的bd(实现ConversionService接口)判断是否有LoadTimeWeaverAware类型的bdDefaultListableBeanFactory.preInstantiateSingle...原创 2019-03-24 19:19:05 · 2214 阅读 · 2 评论 -
spring加载流程之ConfigurationClassPostProcessor
缘起:spring加载流程refresh之invokeBeanFactoryPostProcessors(beanFactory)ConfigurationClassPostProcessorpostProcessBeanDefinitionRegistrypublic void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry...原创 2019-03-05 22:52:21 · 6301 阅读 · 4 评论 -
spring加载流程refresh之invokeBeanFactoryPostProcessors(beanFactory)
spring加载流程refresh之invokeBeanFactoryPostProcessors(beanFactory)invokeBeanFactoryPostProcessorsgetBeanFactoryPostProcessors()PostProcessorRegistrationDelegate类invokeBeanDefinitionRegistryPostProcessors...原创 2019-03-02 21:03:46 · 2282 阅读 · 0 评论 -
spring加载流程refresh之postProcessBeanFactory(beanFactory)
/** * 这个方法在当前上下文没有实现 * 可能在spring后面的版本会去扩展 */postProcessBeanFactory(beanFactory);protected void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) {}这是个空壳方法(模板模式),具体实现会由子类实现,c...原创 2019-03-02 20:23:21 · 2946 阅读 · 0 评论 -
spring加载流程refresh之prepareBeanFactory(beanFactory)
spring加载流程refresh之prepareBeanFactory(beanFactory)prepareBeanFactory设置beanFactory类加载器设置bean表达式解释器设置PropertyEditor属性编辑器添加后置处理器ApplicationContextAwareProcessor跳过特定属性的自动注入注册几个自动装配规则添加后置处理器ApplicationListe...原创 2019-03-02 18:48:39 · 3724 阅读 · 4 评论 -
spring加载流程之refresh()
spring加载流程之refreshAbstractApplicationContextrefresh()之prepareRefresh()refresh()之obtainFreshBeanFactory()refresh()之prepareBeanFactory(beanFactory)缘起: 到这里,上下文构造函数中就剩refresh();方法没有执行了,这是spring重中之重的方法1....原创 2019-03-02 16:17:38 · 7491 阅读 · 0 评论 -
spring加载流程之构造函数中的register(annotatedClasses)
缘起: 看到这篇,spring流程加载之AnnotationConfigApplicationContext的默认构造函this()就执行完了。1.spring加载流程之AnnotatedBeanDefinitionReader2.spring加载流程之ClassPathBeanDefinitionScannerAnnotationConfigApplicationContext conte...原创 2019-03-02 15:34:51 · 2332 阅读 · 0 评论 -
spring加载流程之ClassPathBeanDefinitionScanner
spring加载流程之ClassPathBeanDefinitionScannerClassPathBeanDefinitionScannerClassPathBeanDefinitionScanner的构造函数父类ClassPathScanningCandidateComponentProvider扫描过滤器includeFilters与excludeFiltersClassPathBeanDe...原创 2019-03-02 15:05:39 · 13281 阅读 · 1 评论 -
spring加载流程之AnnotatedBeanDefinitionReader
小计:自上次编译spring源码成功之后(记一次spring源码编译的血泪史),刚好已经过去一个月了,在这期间我边读源码编写注释。其实本来不准备写spring源码博客的。但是发现读一遍两遍还是会记不住一些加载流程的场景,于是再重温一遍的时候,想着一边死磕源码一边写博客分享,看看能坚持多久吧…读源码的技巧是先跟着debug大致跟一下加载流程,然后将一些重点或者不懂的地方分块慢慢消化,于是我准备采用...原创 2019-03-01 23:57:14 · 12385 阅读 · 12 评论 -
记一次spring源码编译的血泪史
编译一次spring源码下载Springgithub地址:spring-framework选择分支下载最新的源码Gradle编译下载gradle地址:https://gradle.org/releases/提示:下载binary-only即只带bin的包,由于配置环境变量可自行百度开始编译推荐博客:https://blog.youkuaiyun.com/bskfnvjtlyzmv867...原创 2019-01-31 21:14:10 · 7986 阅读 · 0 评论 -
300行代码提炼Spring的精华
缘起:看了一堂腾讯课堂咕泡学院的课程SpringIOC、DI、MVC核心原理配置阶段配置文件web.xml<servlet> <servlet-name>mymvc</servlet-name> <servlet-class>com.yk.mvcframework.servlet.MYDispatcherS...原创 2019-01-13 18:45:12 · 965 阅读 · 0 评论 -
spring加载流程refresh之registerListeners()
注册监听器registerListeners通过addApplicationListener(listen)注册监听器自定义实现ApplicationListen接口的bd发布早期的监听器缘起: 继注册了发布事件的bd后spring加载流程refresh之initApplicationEventMulticaster(),继续注册监听器registerListeners/** * 注册监听...原创 2019-03-21 22:17:39 · 2560 阅读 · 1 评论