面试之Spring相关

1.Spring是什么?

Spring是开源框架,是IOC和AOP容器框架。

特点:

a.轻量级,非侵入性的。不需要继承或实现接口就可以使用spring的相关方法

b.依赖注入

c.面向切面编程

d.Spring是一个容器,他包含并管理应用对象的生命周期

e.一站式,整合其他开源框架和第三方类库


2.IOC是什么?

IOC(Inversion Of Control):反转控制。将传统上由程序代码直接操作的对象的调用权交给容器,通过容器来实现对象组件的装配和管理。反转指的是对组件对象控制权的转移,从程序本身转移至外部容器。


3.DI是什么?

DI(Dependency  Injection):依赖注入。容器将某种依赖关系注入到组件之中。


4.注入的方式:

属性注入

构造器注入


5.IOC容器中bean的生命周期?

IOC容器可以管理Bean的生命周期方法:

a.创建Bean实例

b.为Bean中的属性设置值和对其他Bean的引用

postProcessAfterInitialization

c.调用Bean的初始化方法(Bean中声明init-method)

postProcessBeforeInitialization

d.Bean的相关操作

e.容器关闭执行Bean的销毁方法(Bean中声明destroy-method)


6.常用注解都有什么?

@Component 基本注解

@Respository 标识持久层

@Service 标识服务层

@Controller 标识表现层


7.AOP是什么?

Aspect-Oriented Programming 面向切面编程

切面Aspect:横切关注点

通知Advice:切面必须要完成的工作

目标Target:被通知的对象

代理Proxy:向目标对象应用通知之后创建的对象

连接点Joinpoint:程序执行的某个特定位置。如方法调用前,调用后,方法抛出异常后等

切点pointcut:通过切点定位到特定的连接点。


8.AOP的相关注解

@Aspect:标记切面

@Before:前置通知

@After:后置通知

@AfterRuturnning:返回通知,方法返回结果之后执行

@AfterThrowing:异常通知

@Around:围绕着方法执行

@Order(1):指定切面的优先级,值越小,优先级越高
@Pointcut(重用方法):将重用的方法通过Pointcut标记,并标记在新方法上;其他通知可以通过生命新方法实现重用
@Transactional:添加事务注解。
属性propagation:表示事务的传播行为(当前的事务方法被另外一个事务方法调用时),常用属性有propagation=Propagation.REQUIRED(默认,调用方法的事务),propagation=Propagation.REQUIRED_NEW(表示启动新事务,并在自己的事务内运行,如果有事务在运行,就先挂起)
属性isolation:表示事务的隔离级别,isolation=Isolation.READ_COMMITTED,读已提交
属性readOnly=false(默认):表示既可读,又可写
属性timeout=3:表示事务超过3秒就进行回滚操作


9.什么是事务?
事务是一系列动作的集合,被当做一个单独的工作单元,要么全部完成,要么全部不起作用。
4个属性:ACID
原子性
一致性
隔离性
持久性







你可能感兴趣的:(Spring,面试相关)