关于SpringIOC控制反转的笔记。获取spring的Ioc核心容器,并根据id获取对象 * * ApplicationContext的三个常用实现类: * ClassPathXmlApplicationContext:它可以加载类路径下的配置文件,要求配置文件必须在类路径下。不在的话,加载不了。(更常用) * FileSystemXmlApplicationContext:它可以加载磁盘任意路径下的配置文件(必须有访问权限) * * AnnotationConfigApplicationContext:它是用于读取注解创建容器的,是明天的内容。 * * 核心容器的两个接口引发出的问题: * ApplicationContext: 单例对象适用 采用此接口 * 它在构建核心容器时,创建对象采取的策略是采用立即加载的方式。也就是说,只要一读取完配置文件马上就创建配置文件中配置的对象。 * 【Spring IOC控制反转】 Spring框架的核心特性之一是依赖注入(Dependency Injection,简称DI),它通过IOC(Inversion of Control,控制反转)实现。在传统编程中,对象之间的依赖关系通常由程序员手动管理,而在Spring中,这个过程被反转,Spring容器负责管理和装配这些对象及其依赖。 在Spring中,IOC容器是核心,它负责创建和管理对象。容器通过读取配置文件或注解来了解对象之间的依赖关系,并自动将依赖注入到需要它们的对象中。这样可以降低对象之间的耦合度,提高代码的可测试性和可维护性。 ApplicationContext是Spring的接口,它是IOC容器的一种实现,提供了许多实用功能,如资源加载、事件传播和国际化支持。ApplicationContext有三个常用的实现类: 1. ClassPathXmlApplicationContext:这个实现类用于加载类路径下的配置文件。这意味着配置文件必须存在于项目的类路径中。这是最常见的选择,因为它简单易用。 2. FileSystemXmlApplicationContext:这个实现类允许你加载磁盘上任何路径下的配置文件,只要该文件对应用程序有读取权限。这提供了一种灵活性,尤其是在配置文件位于非标准位置时。 3. AnnotationConfigApplicationContext:这个实现类用于读取注解来创建容器。它不依赖XML配置,而是依赖于Java类上的注解来定义对象和它们的依赖关系。这是Spring框架较新引入的功能,适合现代的、注解驱动的开发。 ApplicationContext接口有两种策略来创建对象。一种是单例模式,当使用ApplicationContext时,默认情况下它会立即加载所有配置的bean,即在容器启动时创建所有bean实例。这种策略确保在需要时,每个bean都只有一个实例可用。 在给定的代码示例中,程序间耦合问题通过使用工厂模式和Spring的IOC来解决。代码中的`DaoImpl`类依赖于`Services`接口,但它并没有直接创建`ServicesImpl`的实例,而是通过`BeanFactory`来获取。`BeanFactory`是一个简单的工厂类,它读取`bean.properties`配置文件来确定需要创建哪个对象。这种方式降低了`DaoImpl`和`ServicesImpl`之间的耦合,因为对象的创建不再硬编码在`DaoImpl`内部,而是由外部的配置文件决定。 `Client`类是模拟的Web层,它同样通过`BeanFactory`获取`Dao`的实例,而不是直接创建。这样,即使`Dao`和`Services`的实现发生变化,`Client`类也不需要修改,只需更新配置文件即可,这体现了依赖注入和控制反转的优势。 Spring的IOC通过解耦对象的创建和管理,使得代码更加模块化和易于维护。使用ApplicationContext和配置文件(或者注解)可以方便地定义和管理对象之间的依赖关系,提高软件的可扩展性和可测试性。
剩余9页未读,继续阅读
- 粉丝: 5
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- YOLOv8完整网络结构图详细visio
- LCD1602电子时钟程序
- 西北太平洋热带气旋【灾害风险统计】及【登陆我国次数评估】数据集-1980-2023
- 全球干旱数据集【自校准帕尔默干旱程度指数scPDSI】-190101-202312-0.5x0.5
- 基于Python实现的VAE(变分自编码器)训练算法源代码+使用说明
- 全球干旱数据集【标准化降水蒸发指数SPEI-12】-190101-202312-0.5x0.5
- C语言小游戏-五子棋-详细代码可运行
- 全球干旱数据集【标准化降水蒸发指数SPEI-03】-190101-202312-0.5x0.5
- spring boot aop记录修改前后的值demo
- 全球干旱数据集【标准化降水蒸发指数SPEI-01】-190101-202312-0.5x0.5