2.1.1_BeanFactory是怎么加资源的

其实这是个伪命题,BeanFactory本身并不能主动加载Bean配置。

BeanDefinitionReader持有BeanFactory引用,读取配置资源并解析成BeanDefinition,然后注册到BeanFactory中。

一个最简单的BeanFactory的使用样例只需要几行代码:

1 BeanFactory beanFactory = new DefaultListableBeanFactory();
2 Resource resource = new ClassPathResource("beans.xml");
3 XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(beanFactory);
4 reader.loadBeanDefinitions(resource);

示意图:

整个处理过程:

1、创建DefaultListableBeanFactory;

2、创建配置文件资源ClassPathResource;

3、创建XmlBeanDefinitionReader,内部持有BeanFactory的引用;

4、XmlBeanDefinitionReader读取Resource数据流;

5、通过DefaultDocumentLoader对xml数据流进行解析、验证,生成DOM;

6、通过DefaultBeanDefinitionDocumentReader对DOM进行处理并生成BeanDefinition;

7、XmlBeanDefinitionReader将BeanDefinition注册到BeanFactory。

这样BeanFactory中就有了配置文件中的Bean定义,但此时BeanFactory中并没有实际的Bean对象生成,通过getBean(string name)会触发的Bean创建。

时间: 2024-08-30 10:41:49

2.1.1_BeanFactory是怎么加资源的的相关文章

SQL2012群集添加资源失败解决

问题原因:群集是WIN2012R2+SQL2012Q企业版架构,遇到点问题要解决,不小心做了如下操作:点了"更多资源"à"SQLServer". 结果:杯具了,SQL server角色立马画X,启动失败(因未及时截图,所以示意一下画X的部位显示红X失败) 问题分析:是我不小心加了资源导致,查看系统日志果然有相关报错.于是执行命令看了一下: 果然多了一个失败的资源! 在这里要抱怨一下,误加了资源报了错,WIN2012R2群集管理器既看不到错误的资源,也无法删除!!!这

给CocoaPods库增加Bundle资源

最近用了一个一个开源库320Categories, 看到其中的.podspec文件知道可以用pod install安装,但是今天用的时候发现一个bug,就是在打开的.xcworkspace文件中找不到其中的bundle文件,这不是很坑吗? 再看原文档的介绍,只写了git submodule的使用方法,说明作者都不推荐用pod install更新,是因为pod不支持加资源文件比如bundle? 原来我也是这样想的,不过小小研究了一下发现也是可以的,主要就是针对.podspec文件进行修改一下,增加

进程同步——经典的同步问题

本文为博主原创文章,未经博主允许不得转载 http://www.cnblogs.com/kiplove/p/6724431.html 涉及进程同步的一些概念: 互斥与同步: 临界资源(临界区):指一次只能允许一个进程使用的共享资源称为临界资源: 同步:指为完成某种任务而建立的两个和多个进程,这些进程在合作的过程中需要协调工作次序进行有序的访问而出现等待所产生的制约关系. 互斥:指两个或多个进程访问临界资源时只能一个进程访问,其他进程等待的一种相互制约的关系. 信号量与互斥量: 信号量:本身是一个

美国服务器租用不如国内是个伪命题

小编今天看见一篇文章,文章大意是美国服务器没有国内服务器好,针对文中列举的美国服务器"罪状",Hostspace表示不服. 服务器配置国外更好 美国作为互联网大国,服务器配件行业发展可谓相当成熟,而且数据中心大都使用全新的品牌主机和相关配件.可能其中也有美国劳务价格偏贵的原因,使用价廉的组装机所引发的后续修复成本更加高,所以服务商只会尽量一次性选用质量过关的大品牌配置. 美国网络技术更加成熟 近年来国内的网络技术正在飞速追赶美国,但是美国互联网超级大国的地位也难以撼动.超密集的全球电缆

iOS framework静态库中使用xib和图片资源详解

一.新建bundle 前2篇文章介绍了iOS 最新framework和.a静态库制作及使用全解   iOS 工程套子工程,主工程和framework工程或.a library静态库工程联调 我现在是在主工程的子工程里进行,当然你在创建静态库工程(子工程)的时候也可以.前面我是懒得再建工程了,接着现成主工程套子工程的项目. 1.按下图步骤操作 2.因为iOS框架中没有bundle,要选中OS X框架找到bundle,如下图 二.往bundle加资源文件 将工程中的资源文件都加入到刚刚建的bundl

小米的成功可以复制?

一: 2010年4月,一个新的手机品牌横空出世,那就是小米.雷军说,我们要用互联网思维卖手机,我们的手机是为发烧友而生. 小米之前,对于一部手机来说,它的配置高,也就意味着它的价格绝对不低,所以,对于极大多数的普通用户来说,他们能买到的手机,往往都是卡.慢.丑.尤其是对于爱折腾的年轻人来说,这种手机是不可忍受的,他们期望能有一款这样的手机,配置高,价格可以接受,也就是俗称的性价比要高.于是,当小米喊着“为发烧友而生”的口号进入这个市场的时候,这些用户们沸腾了.激动了.疯狂了.因为他们终于等到了这

android 状态栏(StatusBar)

一.SystemUI 概述 自 android2.2 开始 , 原本存在与 framework-res.apk 中的状态栏和下拉通知栏界面控制被分割出一个单独的 apk 文件 , 命名为 SystemUI.apk, 保存在 System/app 文件夹中.在 SystemUI.apk 中 , 是存在着状态栏的图标 ,XML 和控制文件等 , 这样的分割 , 使我们可以更方便地去修改. SystemUI 模块中主要包含了 USB 和 Statusbar 两个子模块,本文将以 Statusbar 为

博主全程打造的第一个亲生儿子---朴素农历(free)

先上几张王道: App Store 下载地址 越狱版下载地址 虽然博主从2013年开始开发iOS,但是那时候仅仅是为别人打工,写APP. 第一个儿子是ShortenMe+,可能没什么人知道这个软件吧,它是博主独自打造的一款图片处理小App 但是因为那时候Too young,too simple!基础知识太薄弱,图片处理的效果并不理想.而且TA是在美国区上线的···so,下载量并不是很多 更因为发布者是我那时候的老板!!!所以,对别人而言,我是把儿子过继给他了!!! 博主第二个儿子是一款Googl

MES 产品化与项目工程标准化的一些思考

MES 产品化与项目工程标准化的一些思考 一 .建立工程标准化流程的总体思路 我觉得此标准建立要达到的目的:又"快"又"好"的实施MES项目:快是为了快速抢占MES市场,"好"是为赢得用户的口碑,促进MES业务的可持续发展.MES实施的的[快]是速度,[好]是质量,质量是[快]的前提,没有质量的项目快只是暂时的快,最终还会付出代价,没有完工则付出的是返工的代价,如已经完工,付出的公司的口碑,这种代价从长远看是很大的.为了达到这个又快又好,我觉得建