Spring框架深度解析:核心容器、依赖注入与Bean实例化

需积分: 15 0 下载量 79 浏览量 更新于2024-09-09 收藏 3KB TXT 举报
"这是一份关于spring框架的学习笔记,主要涵盖了spring的核心容器、依赖注入和Bean的实例化方式等内容,适合初学者入门学习。" 在Spring框架中,核心容器是整个框架的基础,它负责管理和维护应用对象,即所谓的Bean。这里有两个重要的概念: 1. BeanFactory:它是Spring中最基础的容器,提供了Bean的定义、加载和管理功能。BeanFactory能够延迟加载Bean,只有在真正使用到某个Bean时,才会去初始化它,这有助于提高应用的启动速度。 2. ApplicationContext:是BeanFactory的增强版,除了提供BeanFactory的所有功能外,还增加了处理国际化、资源加载、事件传播等功能。ApplicationContext是更常用的容器,特别是在Web应用程序中。创建ApplicationContext有两种方式: - ClassPathXmlApplicationContext:适用于Java项目,通过类路径下的XML配置文件创建容器。 - FileSystemXmlApplicationContext:则是根据文件系统中的XML配置文件创建容器,常用于非Web环境。 依赖注入(Dependency Injection,简称DI)是Spring的核心特性之一,它允许我们解耦组件之间的依赖关系。DI有两种主要实现方式: - Setter注入:通过在Bean类中定义setter方法,然后在XML配置文件中指定对应的属性值。 - 构造器注入:通过构造函数来设置Bean的依赖,这通常在Bean有多个构造器或依赖关系较为复杂时使用。 Bean的实例化是Spring管理对象的关键步骤,有以下三种方式: 1. 构造器实例化:最常见的方式,Spring会通过Bean定义中指定的构造器参数来创建实例。 2. 静态工厂方法实例化:需要创建一个静态工厂类,然后在XML配置中通过`factory-method`指定工厂类中用于创建Bean的静态方法。 3. 实例工厂方法实例化:首先定义一个工厂Bean,然后在需要实例化的Bean配置中,通过`factory-bean`指定工厂Bean的引用,`factory-method`指定具体的实例化方法。 此外,Bean的`scope`属性定义了Bean的作用域,有以下七种: - singleton:单例模式,Spring容器只会创建一个Bean实例,这是默认的scope。 - prototype:原型模式,每次请求都会创建一个新的Bean实例。 - request:在一次HTTP请求中,每个Bean只有一个实例,但对每个请求都创建新的实例。 - session:在一次HTTP Session中,每个Bean只有一个实例。 - global-session:全局Session作用域,主要用于portlet应用。 - application:在ServletContext作用域内,每个应用只有一个实例。 - websocket:每个WebSocket连接都有一个独立的Bean实例。 这些内容构成了Spring框架的基本使用,对于初学者来说,理解并掌握这些知识点是构建Spring应用的第一步。