顾名思义,BeanFactory其实就是Bean工厂,运用了工厂模式,用来产生Bean。在spring中有几种BeanFactory的实现,现在就来聊聊,简单说一下:
1、XmlBeanFactory:他好几种不同的构造方法,现在说说最常见的一个是利用FileSystemResource来构造:BeanFactory factory = new XmlBeanFactory(new FileSystemResource("c:/beans.xml")); 这段简单的代码告诉bean工厂从xml文件的定义中获取bean,现在bean还没被实例化 需要实例化的话很简单,这样:
MyBean mybean = (MyBean)factory.getBean("mybean"); 这样就可以了
还有一个叫ApplicationContext的和BeanFactory差不多,两者都是载入Bean定义信息,装配Bean不过ApplicationContext提供了更多功能:
a.应用上下文提供了文本信息解析工具,包括国际化(I18N)支持
b.应用上下文提供了载入文件资源的通用方法,如载入图片
c.应用上下文可以向注册为监听器的Bean发送事件
ApplicationContext有诸多实现,下面介绍三个常用的
1.ClassPathXmlApplicationContext 从类路径的xm文件载入上下文定义的信息
2.FileSystemXmlApplicationContext 从文件系统的xml文件载入上下文定义信息
3.XmlWebApplicationContext 从web系统的xml文件载入上下文定义信息
获取bean方法也和BeanFactory差不多
ApplicationContext context = new ClassPathXmlApplicationContext("foo.xml");