1、什么是IOC、什么是DI?
IOC:IOC容器,控制反转,应用程序本身不负责对象的创建以及维护,由IOC容器来控制;
DI:依赖注入,IOC的一种重要实现,用一个单独的对象(装配器)来装载对象之间的依赖关系,然后再创建有依赖关系的对象时,由IOC容器注入依赖对象;
2、DI的方式?
属性注入、构造器注入、接口注入、注解注入;
3、与反射的关系?
IOC容器通过反射机制实例化Bean,并建立Bean之间的依赖关系;
4、什么是反射?
在运行状态中,对于任意的一个类,都可以调用其所有的属性以及方法,对于任意的一个对象,都可以调用它的任意一个属性和方法,这种动态的获取信息以及动态的调用对象的方法称为反射;
5、反射的作用?
将框架与类杂糅在一起的调和剂;
6、bean的作用域?
singleton:单例模式,一个bean容器只能有一个实例;
prototype:每次请求都会创建新的实例(getBean);
request:每次http请求都会创建一个实例,且仅在当前request中有效;
session:每次htto请求都会创建一个实例,在session中有效;
7、Spring事务
Spring 的事务管理是对数据库的事务管理的进一步的封装;
四种隔离级别、七种传播行为;
事务传播行为类型 | 说明 |
PROPAGATION_REQUIRED | 如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。这是 最常见的选择。 |
PROPAGATION_SUPPORTS | 支持当前事务,如果当前没有事务,就以非事务方式执行。 |
PROPAGATION_MANDATORY | 使用当前的事务,如果当前没有事务,就抛出异常。 |
PROPAGATION_REQUIRES_NEW | 新建事务,如果当前存在事务,把当前事务挂起。 |
PROPAGATION_NOT_SUPPORTED | 以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。 |
PROPAGATION_NEVER | 以非事务方式执行,如果当前存在事务,则抛出异常。 |
PROPAGATION_NESTED | 如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则执行与 PROPAGATION_REQUIRED 类似的操作。 |
Spring为JDBC、hibernate、mybatis等工具提供了事务管理器,将事务管理委托给这些持久化的工具;
8、事务的配置?
(1)datasource配置;
(2)配置事务管理器;
(3)配置传播特性;
(4)配置使用事务的方法;
更具代理机制的不同,Spring的配置又分为
Bean代理(每个Bean都有一个代理、所有Bean共享一个代理)、使用拦截器、使用tx标签的拦截器、全注解;
https://www.cnblogs.com/mxmbk/p/5341258.html
9、spring注解:https://blog.csdn.net/qq_36959774/article/details/88262386