Spring学习1——Spring容器
来源:互联网 发布:php 二维数组去重复值 编辑:程序博客网 时间:2024/04/29 00:26
Spring容器会使用XML解析器读取改属性值,并利用反射来创建该实现类的实例。
Spring有两个核心接口:BeanFactory和ApplicationContext,其中ApplicationContext是BeanFactory的子接口。它们都可以代表Spring容器。Spring容器是生成Bean实例的工厂,并管理容器中的Bean。Bean是Spring管理的基本单元。
创建BeanFactory实例时,必须使用Spring容器管理的Bean详细配置信息(XML配置文件)。XML配置文件通常使用Resource对象传入。
Resource接口是Spring提供的资源访问接口,通过使用该接口,Spring能以简单,透明的方式访问子盘,类路径,已经网络上的资源。
大部分Java EE应用,在启动Web应用时自动加载Application实例。对于独立的应用程序,可通过如下方法来实例化BeanFactory。
1.
//搜索当前文件路径下的beans.xml文件,创建Resource对象
InputStreamResource isr = new FileSystemResource("beans.xml");
//以Resource对象作为参数,创建BeanFactory实例
XmlBeanFactory factory = new XmlBeanFactory(isr);
2.
//搜索类加载路径,以类加载路径下的beans.xml文件创建Resource对象
ClassPathResource res = new ClassPathResource("beans.xml");
//以Resource对象为参数,创建BeanFactory实例
XmlBeanFactory factory = new XmlBeanFactory(res);
ApplicationContext允许以声明式方式操作容器,无需手动创建它。可利用如ContextLoader得支持类,在Web应用启动时自动创建ApplicationContext。当然,也可以采用编程方式创建ApplicationContext.
除了提供BeanFactory所支持的全部功能外,ApplicationContext还有如下额外功能:
1.ApplicationContext继承MessageSource接口,因此提供国际化支持。
2.资源访问,比如URL和文件
3.事件机制
4.载入多个配置文件。
ApplicationContext经常用到的三个实现:
1.ClassPathXmlApplicationContext:从类路径中的XML文件载入上下文定义信息。把上下文定义文件当成类路径资源。
2.FileSystemXmlApplicationContext:从文件系统中的XML文件载入上下文定义信息。
3.XmlWebApplicationContext:从Web系统中的XML文件载入上下文定义信息。
BeanFactory延迟加载所有的Bean,知道getBean()方法被调用时,Bean才被创建。
当系统创建ApplicationContext容器时,默认会预初始化所有singleton Bean (prototype类型Bean当需要的时候才会创建)。
- Spring学习1——Spring容器
- Spring学习2—Spring容器
- Spring学习2—Spring容器
- Spring 框架学习 —— 容器
- Spring学习笔记——Spring IOC容器
- Spring 学习 二(Spring 容器)
- Spring学习系列:Spring容器
- Spring学习笔记-Spring容器
- Spring学习-IOC容器
- Spring源码解读——Spring容器初始化 1
- Spring入门——Spring IOC容器
- Spring笔记——Spring容器:ApplicationContext
- 2、spring入门—Spring IOC容器
- Spring基础——容器
- Spring基础—Bean容器
- Spring 学习笔记2—— IoC容器
- Spring学习笔记——核心容器Bean
- Spring入门学习——使用Bean感知容器
- 黑马程序员_集合_list
- Android xliff和字符串资源[Android开发网]
- Linux常用命令 --- kill
- google地图经纬度偏移修正算法完美解决方案
- 用new Image().src作LOG统计的一个注意事项
- Spring学习1——Spring容器
- Spring学习2——Bean的生命周期
- Java连接MySQL数据库
- Spring学习3——属性注入
- ?C_XBP解析
- Linux常用命令 --- ps
- 解决gedit乱码问题
- 三层架构之我见 —— 不同于您见过的三层架构。 -阳光男孩 - 京华志
- Android深入探究笔记之十 -- 使用 ContentProvider 共享数据(二),访问与添加通讯录