帮助记忆,实际还是自己多练。
1.Spring 中应用了哪些设计模式呢?
- 工厂模式 : Spring 容器本质是一个大工厂,使用工厂模式通过 BeanFactory、ApplicationContext 创建 bean 对象。
- 代理模式 : Spring AOP 功能功能就是通过代理模式来实现的,分为动态代理和静态代理。
- 单例模式 : Spring 中的 Bean 默认都是单例的,这样有利于容器对 Bean 的管理。
- 模板模式 : Spring 中 JdbcTemplate、RestTemplate 等以 Template 结尾的对数据库、网络等等进行操作的模板类,就使用到了模板模式。
- 观察者模式: Spring 事件驱动模型就是观察者模式很经典的一个应用。
- 适配器模式 :Spring AOP 的增强或通知 (Advice) 使用到了适配器模式、Spring MVC 中也是用到了适配器模式适配 Controller。
7.策略模式:Spring 中有一个 Resource 接口,它的不同实现类,会根据不同的策略去访问资源。
- 上口诀:工厂创建Bean,代理实现AOP,单例管理利,模板简化层,观察响应事,适配联结用,策略选Resource。
再简单一点:工厂代理单,模板观适策。
2.说一说什么是 Io?什么是 DI?
所谓的IoC(控制反转,Inversion of Control),就是由容器来控制对象的生命周期和对象之间的关系。以前是我们想要什么就自己创建什么,现在是我们需要什么容器就帮我们送来什么。 - IoC控制流:IoC(控制反转)改变了传统的控制流,不再是组件控制如何获取依赖,而是依赖被外部容器控制并反转这个过程。
- DI注人心:DI(依赖注入)就像是给组件注入了新的生命,它让组件的依赖关系由外部容器注入,而不是组件自己创建或查找,使得组件更加专注于自己的职责。
3.说说 BeanFactory 和 ApplicantContext?
- BeanFactory(Bean 工厂)是 Spring 框架的基础设施,面向 Spring 本身。BeanFactory 是类的通用工厂,可以创建并管理各种类的对象。
- ApplicantContext(应用上下文)建立在 BeanFactoty 基础上,面向使用 Spring 框架的开发者。ApplicationContext 由 BeanFactory 派生而来,提供了更多面向实际应用的功能。
- 心脏BeanFactory泵生命:
BeanFactory
作为Spring容器的核心,就像心脏一样为应用程序提供动力和生命,负责Bean的创建和生命周期管理。 - 身体Application连脉动:
ApplicationContext
作为更高级的容器,就像身体一样包含了BeanFactory
的所有功能,并提供了额外的服务和特性,如同身体中的血管和脉络,连接并支持整个应用程序的运作。
BeanFactory基础设,简单快速单线程接。
ApplicationContext全功能,安全多线程企业行。4.你知道 Spring 容器启动阶段会干什么吗?
- 加载配置:容器读取配置信息,这些信息可以来自XML文件、注解或Java配置类。
- 注册Bean:容器根据配置信息创建BeanDefinition对象,并将它们注册到容器中。
- 实例化Bean:容器根据注册的信息实例化Bean,创建Bean的实例。
- 处理依赖关系:容器处理Bean之间的依赖关系,通过依赖注入将所需的资源提供给Bean。
- 初始化Bean:容器调用Bean的初始化方法或执行初始化回调,如BeanPostProcessors。
- 发布事件:容器可以发布上下文刷新事件,通知其他组件上下文已准备就绪。
- 完成启动:完成所有Bean的初始化后,容器启动成功,应用程序上下文准备就绪。
- 载配置,注册Bean,实例Bean,打依赖,初始Bean,发事件
待更新