您的位置:首页 > 编程语言 > Java开发

哇!!!找了好久Java的课程

2015-07-16 16:29 351 查看
找了那么久的课程 原来在这里 ,点进去看看Java课程吗?都没有这么便宜,这么好的视频,这么详细的讲解,就在这里,我赢职场

AbstractApplicationContext的refresh函数载入Bean定义过程:

Spring IoC容器对Bean定义资源的载入是从refresh()函数开始的,refresh()是一个模板方法,refresh()方法的作用是:在创建IoC容器前,如果已经有容器存在,则需要把已有的容器销毁和关闭,以保证在refresh之后使用的是新建立起来的IoC容器。refresh的作用类似于对IoC容器的重启,在新建立好的容器中对容器进行初始化,对Bean定义资源进行载入

FileSystemXmlApplicationContext通过调用其父类AbstractApplicationContext的refresh()函数启动整个IoC容器对Bean定义的载入过程:想要了解更多ioc点击http://dwz.cn/Xr73V


1 public void refresh() throws BeansException, IllegalStateException {

2 synchronized (this.startupShutdownMonitor) {

3 //调用容器准备刷新的方法,获取容器的当时时间,同时给容器设置同步标识

4 prepareRefresh();

5 //告诉子类启动refreshBeanFactory()方法,Bean定义资源文件的载入从

6 //子类的refreshBeanFactory()方法启动

7 ConfigurableListableBeanFactory beanFactory = obtainFreshBeanFactory();

8 //为BeanFactory配置容器特性,例如类加载器、事件处理器等

9 prepareBeanFactory(beanFactory);

10 try {

11 //为容器的某些子类指定特殊的BeanPost事件处理器

12 postProcessBeanFactory(beanFactory);

13 //调用所有注册的BeanFactoryPostProcessor的Bean

14 invokeBeanFactoryPostProcessors(beanFactory);

15 //为BeanFactory注册BeanPost事件处理器.

16 //BeanPostProcessor是Bean后置处理器,用于监听容器触发的事件

17 registerBeanPostProcessors(beanFactory);

18 //初始化信息源,和国际化相关.

19 initMessageSource();

20 //初始化容器事件传播器.

21 initApplicationEventMulticaster();

22 //调用子类的某些特殊Bean初始化方法

23 onRefresh();

24 //为事件传播器注册事件监听器.

25 registerListeners();

26 //初始化所有剩余的单态Bean.

27 finishBeanFactoryInitialization(beanFactory);

28 //初始化容器的生命周期事件处理器,并发布容器的生命周期事件

29 finishRefresh();

30 }

31 catch (BeansException ex) {

32 //销毁以创建的单态Bean

33 destroyBeans();

34 //取消refresh操作,重置容器的同步标识.

35 cancelRefresh(ex);

36 throw ex;

37 }

38 }

39 }

更多详细资料请到http://dwz.cn/Xr73V
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: