Spring核心容器详解:BeanFactory与ApplicationContext
需积分: 9 144 浏览量
更新于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-10-25 上传
2023-08-11 上传
2021-10-15 上传
2021-11-25 上传
2020-12-20 上传
2021-06-02 上传
菜鸟先飞哦
- 粉丝: 9
- 资源: 3
最新资源
- MATLAB新功能:Multi-frame ViewRGB制作彩色图阴影
- XKCD Substitutions 3-crx插件:创新的网页文字替换工具
- Python实现8位等离子效果开源项目plasma.py解读
- 维护商店移动应用:基于PhoneGap的移动API应用
- Laravel-Admin的Redis Manager扩展使用教程
- Jekyll代理主题使用指南及文件结构解析
- cPanel中PHP多版本插件的安装与配置指南
- 深入探讨React和Typescript在Alias kopio游戏中的应用
- node.js OSC服务器实现:Gibber消息转换技术解析
- 体验最新升级版的mdbootstrap pro 6.1.0组件库
- 超市盘点过机系统实现与delphi应用
- Boogle: 探索 Python 编程的 Boggle 仿制品
- C++实现的Physics2D简易2D物理模拟
- 傅里叶级数在分数阶微分积分计算中的应用与实现
- Windows Phone与PhoneGap应用隔离存储文件访问方法
- iso8601-interval-recurrence:掌握ISO8601日期范围与重复间隔检查