spring基础面试题

  1. 什么是spring?

Spring是个开源框架,它主要是负责技术的整合,它可以整合很多技术。该框架提供IOC和AOP机制,可以有效降低系统组件的耦合度,有利于项目系统的维护和扩展。

  1. 描述一下关于spring的IOC与AOP?

IOC是控制反转的意思,作用就是对象的创建,不过主要是依赖于spring和配置文件控制,就不用自己了new对象,这工作由spring容器来帮我们完成。

AOP意思是面向切面编程,它是面向对象编程(OOP)的延续。它主要是将系统中一些非核心业务提取出来,进行单独处理。比如事务,日志,安全等等。

  1. 使用spring框架的优缺点

优点:

  1. 使用spring的IOC容器,将对象之间的依赖关系交给spring,降低组件之间的耦合性,让我们更专注与应用逻辑。
  2. 可以提供众多服务,事务管理等。
  3. AOP的很好支持,方便面向切面编程。
  4. 对主流的框架提供了很好的集成支持,如hibernate,Mybatis等。
  5. Spring DI机制降低了业务对象替换的复杂性。
  6. Spring属于低侵入,代码污染极低。
  7. Spring的高度可开放性,并不强制依赖于spring,开发者可以自由选择spring部分或全部。

缺点:

  1. Jsp中要写很多代码、控制器过于灵活,缺少一个公用控制器。
  2. Spring不支持分布式,这也是EJB仍然再用的原因之一。
  1. 什么是spring IOC容器?

Spring IOC负责创建对象,管理对象(通过依赖注入),装配对象,配置对象,并且管理这些对象的整个生命周期。

  1. Spring有几种配置方式?
  1. 基于xml的配置
  2. 基于注解的配置
  3. 基于Java的配置
  1. 介绍一下spring的事务管理

事务就是对一系列的数据库操作(比如插入多条数据)进行统一的提交或回滚操作,如果插入成功,那么一起成功,如果中间有一条出现异常,那么回滚之前的所有操作。这样可以防止出现脏数据,防止数据库数据出现问题。开发中为了避免这种情况一般都会进行事务管理。Spring中也有自己的事务管理机制,一般是使用TransactionMananger进行管理,可以通过spring的注入来完成此功能。
7. Spring bean的作用域之间有什么区别?

Spring容器中的bean可以分为5个范围:
 Singleton:这种bean范围是默认的,这种范围确保不管接受到多少个请求,每个容器中只有一个bean的实例,单例的模式由bean factory自身来维护。
 Prototype:原型范围与单例范围相反,为每一个bean请求提供一个实例。
 Request:在请求bean范围内会每一个来自客户端的网络请求创建一个实例,在请求完成以后,bean会失效并被垃圾回收器回收。
 Session:与请求范围类似,确保每个session中有一个bean的实例,在session过期后,bean会随之失效。
 Global-session:global-session和portlet应用相关。当你的应用部署在portlet容器中工作时,它包含很多portlet。

  1. 请解释spring Bean的生命周期?

Spring Bean的生命周期简单易懂。在一个bean实例被初始化时,需要执行一系列的初始化操作已达到可用的状态。同样的,当一个bean不在被调用时需要进行相关的析构操作,并从bean容器中移除。

Spring bean factory负责管理在spring容器中被创建的bean的生命周期。Bean的生命周期由两组回调(call back)方法组成。

初始化之后调用的回调方法。
销毁之前调用的回调方法。

Spring框架提供了以下四种方式来管理bean的生命周期事件:
InitializingBean和DisposableBean回调接口
针对特殊行为的其他Aware接口
Bean配置文件中的Custom init()方法的destroy()方法
@PostConstruct和@PreDestroy注解方式

猜你喜欢

转载自blog.csdn.net/weixin_40254133/article/details/82986459