Spring面试题整理

1、什么是Spring?

Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架

2、什么是IOC?

Spring通过IOC技术进行组件间的解耦,当应用了IOC,一个对象依赖的其他对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。

3、什么是AOP

AOP(面向切面编程),可以说是OOP(面向对象)的补充和完善,OOP允许定义从上到下的关系,但并不适合定义从左到右的关系,例如日志功能。日志代码往往水平地分散在所有对象层次中,而与他所散布到的对象的核心功能毫无关系。对于其他类型的代码,如权限控制、异常处理等也是如此。这种散布在各处的与业务系统无关的代码叫做横切代码,他导致了大量的代码重复,且不利于各个模块的使用。

AOP利用一种称为横切的技术,将那些影响了多个类的公共行为封装到一个可用的模块,并将其命名为”切面“,以减少重复代码,降低模块间的耦合度。利用”横切“技术,AOP将软件系统分为两个部分:核心关注点和横切关注点,AOP的作用在于分离系统中的关注点。

4、容器的概念

Spring包含并管理应用对象的配置和生命周期,在这意义上他是一种容器。

5、Spring常用的注入方式有哪些?

1、构造注入

2、setter注入

3、基于注解的注入

6、Spring中的Bean是线程安全的吗?

Spring容器中的Bean是否线程安全,容器本身并没有提供Bean的安全策略,因此可以说容器中的Bean本身不具备线程安全的特性,但是要结合具体的作用域区域去研究。

7、Spring支持几种作用域的Bean?

Spring支持以下5中类型的作用域

1、singleton:单例模式,在整个Spring IOC容器中,使用singleton定义的Bean只有一个实例

2、Protype:原型模式,每次通过容器的getBean()方法获取protype定义的Bean时,都将产生一个新的Bean实例

3、request:对于每次HTTP请求,都将产生一个实例

4、session:对于每次HTTP Session,都将产生一个新的bean实例

5、globalsession:每个全局的HTTP Session,都将产生一个bean实例

8、什么是beanFactory和fantoryBean?

共同点:两个都是接口

区别:

1、beanFactory是一个接口,他是spring中工厂的规范,是sprig IOC容器的核心接口,他定义了getBean(),containsBean()等管理bean的通用方法。spring容器都是他的具体实现,如:

  • DefaultListableBeanFactory
  • XmlBeanFactory
  • ApplicationContext

使用场景:

从IOC容器中获取bean

检索bean是否存在

判断bean是否是单例的

2、FactoryBean首先他是一个bean,但他又不仅仅是一个bean,他还是一个生产或修饰对象生成的工厂bean,类似于工厂模式和装饰器模式,他能在需要的时候生产一个对象,且不限于他自身,他还能返回任何bean的实例。

spring有几种配置方式?

1、xml

2、注解

3、基于Java类的配置

10、spring中bean的声明周期

1、实例化

2、属性赋值

3、初始化

4、销毁

11、spring源码中用到的设计模式

1、工厂模式:spring中使用工厂模式通过BeanFactory创建Bean对象

2、单例模式:spring中bean的作用域默认都是单例的

3、代理模式:spring中AOP的实现

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值