02xml场景的程序入口
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("application.xml");
该构造器里做了很多事情,下面仅大致列一下,防止头脑一时接受不了。
一、构造器内部调用3个方法:
1、super(parent);//this.resourcePatternResolver = getResourcePatternResolver();//得到资源模式解析器,一会靠它解析xml路径字符串变成Resource对象。
2、setConfigLocations(new String[] {"application.xml"});// 把带有占位符"${xxx}/application.xml"变成比如"/abc/application.xml"的形式
3、refresh();// 做了很多工作,主要1是把xml变成BeanDefinition对象,2是根据BeanDefinition对象实例化所有bean
二、refresh();方法
1、prepareRefresh();方法
2、obtainFreshBeanFactory()方法 ★★★★★ 把xml变成BeanDefinition对象
3、prepareBeanFactory(beanFactory);方法
4、postProcessBeanFactory(beanFactory);空方法
5、invokeBeanFactoryPostProcessors(beanFactory);方法
6、registerBeanPostProcessors(beanFactory);方法
7、initMessageSource();方法
8、initApplicationEventMulticaster();方法
9、onRefresh();空方法
10、registerListeners();方法
11、finishBeanFactoryInitialization(beanFactory);方法 ★★★★★ 根据BeanDefinition对象实例化所有bean
12、finishRefresh();方法
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战