1.spring 中都用到了哪些设计模式?
-
「1.工厂设计模式」: 比如通过 BeanFactory 和 ApplicationContext 来生产 Bean 对象
-
「2.代理设计模式」: AOP 的实现方式就是通过代理来实现,Spring主要是使用 JDK 动态代理和 CGLIB 代理
-
「3.单例设计模式」: Spring 中的 Bean 默认都是单例的
-
「4.模板方法模式」: Spring 中 jdbcTemplate 等以 Template 结尾的对数据库操作的类,都会使用到模板方法设计模式,一些通用的功能
-
「5.包装器设计模式」: 我们的项目需要连接多个数据库,而且不同的客户在每次访问中根据需要会去访问不同的数据库。这种模式让我们可以根据客户的需求能够动态切换不同的数据源
-
「6.观察者模式」: Spring 事件驱动模型观察者模式的
-
「7.适配器模式」:Spring AOP 的增强或通知(Advice)使用到了适配器模
2.spring 中有哪些核心模块?
-
1.「Spring Core」:Spring核心,它是框架最基础的部分,提供IOC和依赖注入DI特性
-
2.「Spring Context」:Spring上下文容器,它是 BeanFactory 功能加强的一个子接口
-
3.「Spring Web」:它提供Web应用开发的支持
-
4.「Spring MVC」:它针对Web应用中MVC思想的实现
-
5.「Spring DAO」:提供对JDBC抽象层,简化了JDBC编码,同时,编码更具有健壮性
-
6.「Spring ORM」:它支持用于流行的ORM框架的整合,比如:Spring + Hibernate、Spring + iBatis、Spring + JDO的整合等
-
7.「Spring AOP」:即面向切面编程,它提供了与AOP联盟兼容的编程实现
3.说一下你理解的 IOC 是什么?
首先 IOC 是一个「容器」,是用来装载对象的,它的核心思想就是「控制反转」
那么究竟「什么是控制反转」?
控制反转就是说,「把对象的控制权交给了 spring,由 spring 容器进行管理」,我们不进行任何操作
那么为「什么需要控制反转」?
我们想象一下,没有控制反转的时候,我们需要「自己去创建对象,配置对象」,还要「人工去处理对象与对象之间的各种复杂的依赖关系」,当一个工程的量起来之后,这种关系的维护是非常令人头痛的,所以就有了控制反转这个概念,将对象的创建、配置等一系列操作交给 spring 去管理,我们在使用的时候只要去取就好了
4.spring 中的 IOC 容器有哪些?有什么区别?
spring 主要提供了「两种 IOC 容器」,一种是 「BeanFactory」,还有一种是 「ApplicationContext」
它们的区别就在于,BeanFactory 「只提供了最基本的实例化对象和拿对象的功能」,而 ApplicationContext 是继承了 BeanFactory 所派生出来的产物,是其子类,它的作用更加的强大,比如支持注解注入、国际化等功能

本文介绍了Spring框架中使用的设计模式、核心模块及其功能,并详细解释了IOC、DI的概念及其实现方式。此外,还探讨了Spring事务管理、AOP编程、自动装配原理等内容。

7185

被折叠的 条评论
为什么被折叠?



