Spring框架学习笔记:IoC与DI深度解析

需积分: 1 0 下载量 28 浏览量 更新于2024-07-18 收藏 623KB DOC 举报
"这篇文档是Spring学习笔记的第二部分,主要涵盖了Spring框架中关于IoC(Inversion of Control,控制反转)和DI(Dependency Injection,依赖注入)的概念以及相关配置和使用方法。" 在Spring框架中,IoC是通过配置文件来管理对象的创建和依赖关系,从而解耦了代码和对象的生命周期。以下是对文中提到的关键点的详细解释: 1. **导入必要的jar包**:Spring的核心组件包括`beans`、`core`、`context`、`expression`和`commons-logging`等,它们提供了Spring的基本功能和日志支持。 2. **编写目标类**:在Spring中,通常我们会创建DAO(数据访问对象)和Service层类,这些类会包含业务逻辑和数据操作。 3. **Spring配置文件**:配置文件是定义bean及其依赖关系的地方,其中`<bean>`元素用于定义一个对象实例,`id`属性用于唯一标识,`class`属性指定对象的全限定类名。 4. **依赖注入(DI)**: - **属性注入**:通过`<property>`元素设置bean的属性值,可以是直接值或引用其他bean。 - **构造方法注入**:使用`<constructor-arg>`元素指定构造函数参数。 - **p命名空间**:简化了属性注入的写法,可以更直观地设置属性值。 5. **实例化方式**:Spring支持多种实例化bean的方式,包括默认构造器、静态工厂方法和实例工厂方法。 6. **作用域**:`scope`属性定义bean的作用域,如`singleton`(单例)和`prototype`(原型)。 7. **生命周期管理**:`init-method`和`destroy-method`属性分别指定bean初始化和销毁时执行的方法。 8. **后处理bean**:`BeanPostProcessor`接口允许自定义bean初始化前后的处理逻辑。 9. **SpEL(Spring Expression Language)**:Spring表达式语言,用于在运行时查询和操作对象图。例如,可以使用SpEL来动态获取bean的属性值或调用方法。 10. **集合注入**:Spring支持数组、List、Set、Map和Properties类型的集合注入,通过相应的元素结构进行配置。 11. **核心API**:Spring提供了两种主要的应用上下文接口,`BeanFactory`和`ApplicationContext`,后者更强大且常用,能提供更多的企业级服务,如消息源、国际化等。`ClassPathXmlApplicationContext`是加载类路径下XML配置文件的应用上下文实现。 在实际开发中,理解并熟练运用这些概念和技巧是构建高效、可维护的Spring应用的基础。通过这些配置和编程模式,我们可以将应用程序的组件解耦,使代码更易于测试和扩展。