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
原子性
一致性
隔离性
持久性