【Spring面试18问】

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

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 所派生出来的产物,是其子类,它的作用更加的强大,比如支持注解注入、国际化等功能

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值