Spring 面试题

 

一.IOC

Spring提供一个bean的工厂对各个bean进行管理(创建和使用),当用户想要创建对象的时候,从工厂中取出来注入到要实例化的对象中即可。

1 Spring工厂

Spring 面试题_第1张图片

我们在代码中获得工厂,一般不用BeanFactory而是用其子类ApplicationContext。获得工厂的方式包括以下两种:

Spring 面试题_第2张图片

2 Bean容器的生成

我们在工厂中放上容器才行,要不这个工厂就是个空壳。

2.1 XML生成容器

 

Spring 面试题_第3张图片

Spring 面试题_第4张图片

 

3 容器是对象,对象由类创建而来,类中的属性也需要注入,属性注入的包括两种。

 

Spring 面试题_第5张图片

 

3 Bean容器的声明周期

Bean容器生成之后,不可能一直存放到内存里面,肯定要有一个生命周期。

Spring 面试题_第6张图片

Spring 面试题_第7张图片

 

2.2 注解生成容器(这个用的较多)

2.2 注解生成容器(这个用的较多)

Spring 面试题_第8张图片

 

4 如何取出Bean注入到要实例化的对象中

 Spring 面试题_第9张图片

4 如何取出Bean注入到要实例化的对象中

Spring 面试题_第10张图片

二 AOP

Spring 面试题_第11张图片

分别用实例来说明一下这些名词

 

Target 代理对象

Spring 面试题_第12张图片

 

切入点

连接点

Spring 面试题_第13张图片

1 切入点

Spring 面试题_第14张图片

2 通知

Spring 面试题_第15张图片

 

3 切面

切入点和通知的结合

Spring 面试题_第16张图片

 

 

AOP也很好理解,定义切点(往往是一组),然后在切点前后加通知。比如,对所有delete方法添加事务。

说到添加事务,我们就有必要讲一下事务了

什么是事务

事务逻辑上的一组操作,组成这组操作的各个逻辑单元,要么一起成功,要么一起失败.

事务的特性

原子性:强调事务的不可分割.

隔离性: 一个事务执行的过程中,不应该受到其他事务的干扰

一致性:事务的执行的前后数据的完整性保持一致.

持久性:事务一旦结束,数据就持久到数据库

事务的安全性:

脏读:读未提交

不可重复读:两次读的数据不一致

幻读:两次读的数据不一致

不可重复读和幻读的区别

不可重复读:一个事务读,另一个事务修改,导致前一个事务读的数据不一致

幻读:一个事务读,另一个事务插入。导致钱一个事务发现自己少读了数据,决定自己出现了幻觉。

事务的隔离级别:

读未提交

读已提交

可重复读

串行化

事务的传播:

Spring 面试题_第17张图片

 

 

 

你可能感兴趣的:(spring)