网站建设流程策划方案,北京朝阳区属于几环,主营商城网站建设,seo 优化顾问本章概要
组件和组件管理概念 什么是组件#xff1f;我们的期待Spring充当组件管理角色#xff08;IoC#xff09;组件交给Spring管理优势 Spring IoC 容器和容器实现 普通和复杂容器SpringIoC 容器介绍SpringIoC 容器具体接口和实现类SpringIoC 容器管理配置方式 Spring I…本章概要
组件和组件管理概念 什么是组件我们的期待Spring充当组件管理角色IoC组件交给Spring管理优势 Spring IoC 容器和容器实现 普通和复杂容器SpringIoC 容器介绍SpringIoC 容器具体接口和实现类SpringIoC 容器管理配置方式 Spring IoC / DI概念总结
3.1 组件和组件管理概念
3.1.1 什么是组件
回顾常规的三层架构处理请求流程整个项目就是由各种组件搭建而成的
3.1.2 我们的期待
有人替我们创建组件的对象有人帮我们保存组件的对象有人帮助我们自动组装有人替我们管理事务有人协助我们整合其他框架…
3.1.3 Spring充当组件管理角色IoC 那么谁帮我们完成我们的期待帮我们管理组件呢当然是Spring 框架了组件可以完全交给Spring 框架进行管理 Spring 框架替代了程序员原有的new对象和对象属性赋值动作等Spring具体的组件管理动作包含
组件对象实例化组件属性属性赋值组件对象之间引用组件对象存活周期管理…
我们只需要编写元数据配置文件告知Spring 管理哪些类组件和他们的关系即可
注意组件是映射到应用程序中所有可重用组件的Java对象应该是可复用的功能对象
组件一定是对象对象不一定是组件
综上所述Spring 充当一个组件容器创建、管理、存储组件减少了我们的编码压力让我们更加专注进行业务编写
3.1.4 组件交给Spring管理优势
降低了组件之间的耦合性Spring IoC容器通过依赖注入机制将组件之间的依赖关系削弱减少了程序组件之间的耦合性使得组件更加松散地耦合。提高了代码的可重用性和可维护性将组件的实例化过程、依赖关系的管理等功能交给Spring IoC容器处理使得组件代码更加模块化、可重用、更易于维护。方便了配置和管理Spring IoC容器通过XML文件或者注解轻松的对组件进行配置和管理使得组件的切换、替换等操作更加的方便和快捷。交给Spring管理的对象组件方可享受Spring框架的其他功能AOP,声明事务管理等
3.2 Spring IoC 容器和容器实现 3.2.1 普通和复杂容器
普通容器生活中的普通容器普通容器只能用来存储没有更多功能。程序中的普通容器
数组集合List集合Set复杂容器生活中的复杂容器 政府管理我们的一生生老病死都和政府有关。程序中的复杂容器Servlet 容器能够管理 Servlet(init,service,destroy)、Filter、Listener 这样的组件的一生所以它是一个复杂容器。
名称时机次数创建对象默认情况接收到第一次请求 修改启动顺序后Web应用启动过程中一次初始化操作创建对象之后一次处理请求接收到请求多次销毁操作Web应用卸载之前一次
我们即将要学习的 SpringIoC 容器也是一个复杂容器。它们不仅要负责创建组件的对象、存储组件的对象还要负责调用组件的方法让它们工作最终在特定情况下销毁组件。
总结Spring管理组件的容器就是一个复杂容器不仅存储组件也可以管理组件之间依赖关系并且创建和销毁组件等
3.2.2 SpringIoC 容器介绍 Spring IoC 容器负责实例化、配置和组装 bean组件。容器通过读取配置元数据来获取有关要实例化、配置和组装组件的指令。配置元数据以 XML、Java 注解或 Java 代码形式表现。它允许表达组成应用程序的组件以及这些组件之间丰富的相互依赖关系。 上图显示了 Spring 容器工作原理的高级视图。应用程序类与配置元数据相结合您拥有完全配置且可执行的系统或应用程序。
3.2.3 SpringIoC 容器具体接口和实现类
SpringIoc容器接口BeanFactory 接口提供了一种高级配置机制能够管理任何类型的对象它是SpringIoC容器标准化超接口ApplicationContext 是 BeanFactory 的子接口。它扩展了以下功能
更容易与 Spring 的 AOP 功能集成消息资源处理用于国际化
特定于应用程序给予此接口实现例如Web 应用程序的 WebApplicationContext简而言之 BeanFactory 提供了配置框架和基本功能而 ApplicationContext 添加了更多特定于企业的功能。
ApplicationContext 是 BeanFactory 的完整超集ApplicationContext容器实现类 类型名简介ClassPathXmlApplicationContext通过读取类路径下的 XML 格式的配置文件创建 IOC 容器对象FileSystemXmlApplicationContext通过文件系统路径读取 XML 格式的配置文件创建 IOC 容器对象AnnotationConfigApplicationContext通过读取Java配置类创建 IOC 容器对象WebApplicationContext专门为 Web 应用准备基于 Web 环境创建 IOC 容器对象并将对象引入存入 ServletContext 域中。
3.2.4 SpringIoC 容器管理配置方式
Spring IoC 容器使用多种形式的配置元数据。此配置元数据表示您作为应用程序开发人员如何告诉 Spring 容器实例化、配置和组装应用程序中的对象。
Spring框架提供了多种配置方式XML 配置方式、注解方式和 Java 配置类方式
XML 配置方式是Spring框架最早的配置方式之一通过在XML文件中定义Bean及其依赖关系、Bean的作用域等信息让Spring IoC容器来管理Bean之间的依赖关系。该方式从Spring框架的第一版开始提供支持。注解方式从Spring 2.5版本开始提供支持可以通过在Bean类上使用注解来代替XML配置文件中的配置信息。通过在Bean类上加上相应的注解如Component, Service, Autowired等将Bean注册到Spring IoC容器中这样Spring IoC容器就可以管理这些Bean之间的依赖关系。Java配置类方式从Spring 3.0版本开始提供支持通过Java类来定义Bean、Bean之间的依赖关系和配置信息从而代替XML配置文件的方式。Java配置类是一种使用Java编写配置信息的方式通过Configuration、Bean等注解来实现Bean和依赖关系的配置。为了迎合当下开发环境我们将以配置类注解方式为主进行讲解
3.3 Spring IoC / DI概念总结 IoC容器 Spring IoC 容器负责实例化、配置和组装 bean组件核心容器。容器通过读取配置元数据来获取有关要实例化、配置和组装组件的指令。 IoCInversion of Control控制反转 IoC 主要是针对对象的创建和调用控制而言的也就是说当应用程序需要使用一个对象时不再是应用程序直接创建该对象而是由 IoC 容器来创建和管理即控制权由应用程序转移到 IoC 容器中也就是“反转”了控制权。这种方式基本上是通过依赖查找的方式来实现的即 IoC 容器维护着构成应用程序的对象并负责创建这些对象。 DI (Dependency Injection) 依赖注入 DI 是指在组件之间传递依赖关系的过程中将依赖关系在容器内部进行处理这样就不必在应用程序代码中硬编码对象之间的依赖关系实现了对象之间的解耦合。在 Spring 中DI 是通过 XML 配置文件或注解的方式实现的。它提供了三种形式的依赖注入构造函数注入、Setter 方法注入和接口注入。