java面试题--Spring

一、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的事务传播机制是什么?

  1. REQUIRED:默认的传播特性。当前存在事务,则加入事务。当前不存在事务,则新建一个事务。
  2. SUPPORTS:当前存在事务,则加入事务。当前不存在事务,则以非事务方式执行。
  3. MANDATORY:当前存在事务,加入事务。不存在事务,则抛出异常。
  4. REQUIRED_NEW:新建一个事务。如果当前存在事务,则挂起当前事务。
  5. NOT_SUPPORTED: 以非事务方式执行。如果当前存在事务,则挂起当前事务。
  6. NEVER: 不使用事务。如果当前事务存在,则抛出异常。
  7. NESTED:如果当前存在事务,则在嵌套事务中执行,否则和REQUIRED的操作一样。

NESTED和REQUIRED_NEW的区别

REQUIRED_NEW是新建一个事务,并且新开启的这个事务与原有事务无关,而NESTED是当前存在事务时会开启一个嵌套事务。在NESTED情况下,父事务回滚时,子事务也会回滚。而REQUIRED_NEW情况下,原有事务回滚,不会影响新开启的事务。

NESTED和REQUIRED的区别

REQUIRED情况下,调用方存在事务时,则被调用方和调用方使用同一个事务,那么被调用方出现异常时,由于共用一个事务,所以无论是否catch异常,事务都会回滚。而NESTED情况下,被调用方发生异常时,调用方可以catch其异常,这样只有子事务回滚,父事务不会回滚。

五、Spring框架中的单例bean是线程安全的吗?

六、Spring框架中使用了哪些设计模式及应用场景?

七、Spring事务的隔离级别有哪些?

read uncommited,   read commited,  repeatable read,  serialilzable

在进行配置的时候,如果数据库和Spring代码中的隔离级别不同,那么以Spring的配置为主。

八、Spring事务的实现方式原理是什么?

  1. 编程式事务。
  2. 声明式事务@Transactional。利用Spring的AOP,动态代理添加了@Transactional的类。在方法开始前,开启一个事务。如果方法执行结束后,没有抛出异常,则提交事务,如果有异常,则回滚事务。

九、Spring事务什么时候会失效?

  1. bean对象没有被Spring容器管理。
  2. 方法的访问修饰符不是public。
  3. 自身调用问题。只调用该类自己的方法,不会创建代理类,所以事务失效。
  4. 数据源没有配置事务管理器。
  5. 数据库不支持事务。
  6. 异常被捕获,捕获后出现异常,事务不会回滚。
  7. 异常类型错误或者配置错误。

 十、如何实现一个IOC容器?

十一、说说对AOP的理解? 

AOP全称面向切面编程,它是为解耦而生的。 

十二、为什么hashMap扩容的时候是两倍?

  1. 初始容量为2的幂数,扩容后的容量也是2的幂数,则元素在新表中的位置,要么不动,要么满足新位置=原位置+原长度。
  2. 容量为2的幂数,在进行&位运算时,可以减少hash碰撞,是元素均匀的散布在map中。

 

 

 

  

 

posted @ 2023-04-25 10:34  翊梦  阅读(26)  评论(0)    收藏  举报