SSM与SpringBoot面试题
什么是Spring?
Spring是一个Java生态,SpringFramework是Spring的基础框架包括ioc,aop等。
ioc是控制反转,注入方式有构造器注入、setter方法注入、注解注入
AOP面向切面编程。核心是动态代理,JDK的动态代理和CGLIB的动态代理。
理解Springboot的starter
定义一个starter的jar包,写一个@Configuration配置类,配置类中定义所需要的bean,然后在starter包的META-INF/spring.factories中写入该配置类,springboot就会按照约定加载该配置类。
对aop的理解
aop是面向切面编程,可以把程序中交叉的业务逻辑封装成一个切面,注入目标对象中。对功能进行0侵入增强。
Spring事务机制
是基于数据库事务和AOP机制实现的。对使用了@Trancactional注解的bean,spring会创建一个代理对象作为bean,当调用代理对象的放啊时,判断有没有该注解,加了注解的创建一个数据库连接,修改数据库连接的autoCommit为false,执行方法(方法中涉及sql)执行完方法没有出现异常或者程序员执行捕获就直接提交事务。如果出现需要回滚的异常,就进行回滚。
Spring事务传播机制
- REQUIRED (默认传播行为):有事务加入事务,没有事务创建新事务。
- SUPPORTS :有事务加入事务,没有事务非事务执行。
- REQUIRES_NEW :有没有事务都创建新事务。
- MANDATORY :有事务加入事务,没有事务抛异常。
- NOT_SUPPORTED :非事务运行,有事务就将事务挂起。
- NEVER :非事务运行,存在事务抛异常。
- NESTED :存在事务就嵌套事务内执行,没有事务按 REQUIRED执行。