一、Spring、SpringMVC、SpringBoot的区别是什么?
二、????
三、SpringMVC工作流程是什么?
1、DispatcherServlet接收请求,将请求发给HandlerMapping;
2、HandlerMapping根据请求url,匹配到要处理的handler,并包装成处理器执行链,返回给DispatcherServlet。
3、DispatcherServlet根据处理器执行链中的处理器,找到能执行该处理器的HandlerAdapter。
4、HandlerAdapter调用对应的Controller。
5、Controller执行代码,返回ModleAndView给HandlerAdapter。
6、HandlerAdapter将ModleAndView返回给DispatcherServlet。
7、DispatcherServlet拿到ModleAndView并交给ViewResolver处理。
8、ViewResolver将ModleAndView处理成View对象,发给DispatcherServlet。
9、 DispatcherServlet 调用视图对象,让其自己 (View) 进行渲染(将模型数据填充至视图中),形成响应对象 (HttpResponse)。
10.、前端控制器 (DispatcherServlet) 响应 (HttpResponse) 给浏览器,展示在页面上。
四、Spring的事务传播机制是什么?
- REQUIRED:默认的传播特性。当前存在事务,则加入事务。当前不存在事务,则新建一个事务。
- SUPPORTS:当前存在事务,则加入事务。当前不存在事务,则以非事务方式执行。
- MANDATORY:当前存在事务,加入事务。不存在事务,则抛出异常。
- REQUIRED_NEW:新建一个事务。如果当前存在事务,则挂起当前事务。
- NOT_SUPPORTED: 以非事务方式执行。如果当前存在事务,则挂起当前事务。
- NEVER: 不使用事务。如果当前事务存在,则抛出异常。
- NESTED:如果当前存在事务,则在嵌套事务中执行,否则和REQUIRED的操作一样。
NESTED和REQUIRED_NEW的区别?
NESTED和REQUIRED的区别?
五、Spring框架中的单例bean是线程安全的吗?
六、Spring框架中使用了哪些设计模式及应用场景?
七、Spring事务的隔离级别有哪些?
read uncommited, read commited, repeatable read, serialilzable
在进行配置的时候,如果数据库和Spring代码中的隔离级别不同,那么以Spring的配置为主。
八、Spring事务的实现方式原理是什么?
- 编程式事务。
- 声明式事务@Transactional。利用Spring的AOP,动态代理添加了@Transactional的类。在方法开始前,开启一个事务。如果方法执行结束后,没有抛出异常,则提交事务,如果有异常,则回滚事务。
九、Spring事务什么时候会失效?
- bean对象没有被Spring容器管理。
- 方法的访问修饰符不是public。
- 自身调用问题。只调用该类自己的方法,不会创建代理类,所以事务失效。
- 数据源没有配置事务管理器。
- 数据库不支持事务。
- 异常被捕获,捕获后出现异常,事务不会回滚。
- 异常类型错误或者配置错误。
十、如何实现一个IOC容器?
十一、说说对AOP的理解?
AOP全称面向切面编程,它是为解耦而生的。
十二、为什么hashMap扩容的时候是两倍?
- 初始容量为2的幂数,扩容后的容量也是2的幂数,则元素在新表中的位置,要么不动,要么满足新位置=原位置+原长度。
- 容量为2的幂数,在进行&位运算时,可以减少hash碰撞,是元素均匀的散布在map中。
标签:面试题,ModleAndView,--,Spring,REQUIRED,事务,当前,DispatcherServlet From: https://www.cnblogs.com/aleda-territory/p/17319204.html