"韩顺平2011版的Spring视频教程PPT,讲解了Spring框架中的装配Bean概念,包括Bean工厂和应用上下文的应用。"
在Spring框架中,装配Bean是核心特性之一,它实现了控制反转(IOC)和依赖注入(DI),有助于减少代码之间的耦合。本教程主要探讨了两种主要的Bean容器:Bean工厂和应用上下文。
**2.1 容纳你的Bean**
- **Bean工厂(BeanFactory)**:这是Spring中最基础的Bean容器,它负责管理和创建Bean。BeanFactory提供了基本的依赖注入支持,能够创建不同类型的Bean。不过,Bean的实例化是在需要时才进行的,即延迟初始化。通过`BeanFactory factory = new XmlBeanFactory(new ClassPathResource("applicationContext.xml"))`,我们可以创建一个BeanFactory实例,并通过`factory.getBean("mybean")`获取指定的Bean。
- **应用上下文(ApplicationContext)**:它是Bean工厂的增强版,提供了更全面的功能,比如系统架构服务。ApplicationContext不仅包含BeanFactory的所有功能,还支持文本信息解析(包括国际化)、文件资源的加载以及向注册的监听器发送事件。对于大多数应用来说,推荐使用ApplicationContext。它有三种常用的实现:
- `ClassPathXmlApplicationContext`:从类路径中加载配置文件。
- `FileSystemXmlApplicationContext`:从文件系统的特定路径加载配置文件。
- `XmlWebApplicationContext`:在Web环境中,从Web应用的上下文中加载配置文件。
**2.1.1 Bean工厂介绍**
Bean工厂基于工厂设计模式,用于创建和分发Bean。它允许配置Bean之间的协作关系,并参与到Bean的生命周期管理中。通过BeanFactory,可以在需要时按需实例化Bean,提高了灵活性和性能。
**2.1.2 使用应用上下文**
ApplicationContext提供了更多的高级特性,如资源加载、事件传播等,使得它成为大部分应用的理想选择。在某些特定场景下,如资源有限的移动设备,可能需要使用更轻量级的BeanFactory。
**Bean的作用域(Scope)**
在Spring中,Bean可以配置为不同的作用域:
- **Singleton**:单例模式,每个容器只有一个实例,是默认的Bean作用域。
- **Prototype**:原型模式,每次请求都会创建一个新的Bean实例。
- **Request**:在Java Web开发中,每个HTTP请求都会有一个新的Bean实例。
- **Session**:在Java Web开发中,每个HTTP会话都有一个Bean实例。
通过设置Bean的`scope`属性,可以控制Bean的生命周期和创建策略,以满足不同场景的需求。
总结,本教程详细介绍了Spring中装配Bean的基本概念和实践,包括如何使用Bean工厂和应用上下文来管理Bean,以及如何利用不同的Bean作用域来控制实例化行为。这些知识对于理解和使用Spring框架进行应用开发至关重要。