Spring核心容器详解:BeanFactory与ApplicationContext
需积分: 9 161 浏览量
更新于2024-08-05
收藏 34KB MD 举报
"这篇文档是关于Spring核心容器的个人学习笔记,主要记录了Spring框架中的BeanFactory和ApplicationContext的使用,以及XML配置文件的基础知识。"
在Spring框架中,核心容器是整个框架的基础,它负责管理和控制对象的生命周期,即Bean的创建、初始化、使用和销毁。主要有两个重要的接口,它们是BeanFactory和ApplicationContext。
### BeanFactory
BeanFactory是Spring最基础的IoC(Inversion of Control,控制反转)容器。它作为一个管理Bean的工厂,可以按需加载和实例化Bean。BeanFactory的主要职责包括:
1. 加载配置:通过`ClassPathXmlApplicationContext`等类,可以从类路径下的XML配置文件加载Bean定义。
2. 管理Bean:维护Bean的集合,根据Bean的ID和名称进行查找、获取和管理。
3. 延迟初始化:BeanFactory支持懒加载,即只有在真正需要时才会实例化Bean。
示例代码展示了如何使用`ClassPathXmlApplicationContext`创建BeanFactory:
```java
// 1. 加载bean工厂
BeanFactory beanFactory = new ClassPathXmlApplicationContext("app*.xml");
```
在这个例子中,`app*.xml`表示所有匹配该模式的XML配置文件都会被加载。
### ApplicationContext
ApplicationContext是BeanFactory的子接口,通常被称为应用上下文,提供了更高级的功能,如:
1. 国际化支持:可以处理不同语言和区域的资源文件。
2. 资源访问:能够访问文件系统、网络或数据库中的资源。
3. 事件传播:支持发布和订阅事件模型,允许Bean之间进行通信。
4. AOP支持:提供面向切面编程的能力,方便实现日志、事务等跨切面的功能。
ApplicationContext的创建方式有两种:
- 通过ClassPathXmlApplicationContext创建:这是最常见的创建方式,从类路径下加载配置文件。
```java
// 1. 加载bean工厂
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("app1.xml");
```
- 通过FileSystemXmlApplicationContext创建:这种方式从文件系统的绝对路径加载配置文件,灵活性较差。
```java
// 1. 加载bean工厂
ApplicationContext applicationContext = new FileSystemXmlApplicationContext(String configLocation);
```
### XML配置信息
Spring中的Bean定义通常采用XML文件进行配置。基本的XML结构如下:
```xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- Bean的定义 -->
<bean id="exampleBean" class="com.example.ExampleBean">
<!-- 属性注入 -->
<property name="name" value="Example"/>
</bean>
</beans>
```
在这个XML配置中,`<beans>`元素是根元素,`<bean>`元素定义了一个具体的Bean,包括其ID(`id`属性)和类名(`class`属性)。`<property>`元素用于注入Bean的属性值。
Spring的核心容器通过BeanFactory和ApplicationContext实现了对象的控制反转和依赖注入,而XML配置文件则提供了声明式的方式来定义和管理这些对象。这种灵活的配置方式使得Spring能够适应各种复杂的应用场景,成为了Java企业级开发的重要工具。
2020-12-24 上传
2020-04-17 上传
2023-06-10 上传
2023-05-31 上传
2023-06-01 上传
2023-06-09 上传
2023-03-08 上传
2024-03-29 上传
2023-03-20 上传
![](https://profile-avatar.csdnimg.cn/1ea1ca21757e4f97a8f699ff4d204ef5_m0_47325996.jpg!1)
菜鸟先飞哦
- 粉丝: 9
- 资源: 3
最新资源
- Hadoop生态系统与MapReduce详解
- MDS系列三相整流桥模块技术规格与特性
- MFC编程:指针与句柄获取全面解析
- LM06:多模4G高速数据模块,支持GSM至TD-LTE
- 使用Gradle与Nexus构建私有仓库
- JAVA编程规范指南:命名规则与文件样式
- EMC VNX5500 存储系统日常维护指南
- 大数据驱动的互联网用户体验深度管理策略
- 改进型Booth算法:32位浮点阵列乘法器的高速设计与算法比较
- H3CNE网络认证重点知识整理
- Linux环境下MongoDB的详细安装教程
- 压缩文法的等价变换与多余规则删除
- BRMS入门指南:JBOSS安装与基础操作详解
- Win7环境下Android开发环境配置全攻略
- SHT10 C语言程序与LCD1602显示实例及精度校准
- 反垃圾邮件技术:现状与前景